Novas Tecnologias em Arquiteturas de Sistemas · – Objetivo 2: Novas Arquiteturas – Arquitetura...

57
Novas Tecnologias em Novas Tecnologias em Arquiteturas de Sistemas Arquiteturas de Sistemas Nilson Sant Nilson Sant Anna Anna LAC/INPE LAC/INPE Laborat Laborat ó ó rio de Computa rio de Computa ç ç ão e ão e Matem Matem á á tica Aplicada tica Aplicada Caltech Caltech California California Institute Institute of of Technology Technology Janeiro a Dezembro de 2007 Janeiro a Dezembro de 2007

Transcript of Novas Tecnologias em Arquiteturas de Sistemas · – Objetivo 2: Novas Arquiteturas – Arquitetura...

Page 1: Novas Tecnologias em Arquiteturas de Sistemas · – Objetivo 2: Novas Arquiteturas – Arquitetura Orientada a Serviço - SOA ... – O Serviço tem autonomia sobre a lógica que

Novas Tecnologias em Novas Tecnologias em Arquiteturas de SistemasArquiteturas de Sistemas

Nilson SantNilson Sant’’AnnaAnnaLAC/INPELAC/INPE –– LaboratLaboratóório de Computario de Computaçção e ão e

MatemMatemáática Aplicadatica AplicadaCaltechCaltech –– CaliforniaCalifornia InstituteInstitute of of TechnologyTechnology

Janeiro a Dezembro de 2007Janeiro a Dezembro de 2007

Page 2: Novas Tecnologias em Arquiteturas de Sistemas · – Objetivo 2: Novas Arquiteturas – Arquitetura Orientada a Serviço - SOA ... – O Serviço tem autonomia sobre a lógica que

AgendaAgendaMotivaMotivaççãoãoContexto de TrabalhoContexto de TrabalhoObjetivosObjetivosMetodologia de PesquisaMetodologia de Pesquisa–– Objetivo 1: A base de sistemas de informaObjetivo 1: A base de sistemas de informaçção ão –– Bancos Bancos

de Dadosde Dados–– Objetivo 2: Novas Arquiteturas Objetivo 2: Novas Arquiteturas –– Arquitetura Orientada Arquitetura Orientada

a Servia Serviçço o -- SOASOA

Fundamento do Trabalho Fundamento do Trabalho –– Engenharia de Engenharia de Software e Arquiteturas.Software e Arquiteturas.Exemplo de Sistema: VO Exemplo de Sistema: VO –– Virtual Virtual ObservatoryObservatoryConclusãoConclusão

Page 3: Novas Tecnologias em Arquiteturas de Sistemas · – Objetivo 2: Novas Arquiteturas – Arquitetura Orientada a Serviço - SOA ... – O Serviço tem autonomia sobre a lógica que

MotivaMotivaççãoãoCom relaCom relaçção ão àà DemandaDemanda–– Sistemas Grandes, Complexos e IntegradosSistemas Grandes, Complexos e Integrados

Exemplos: ComExemplos: Coméércio Eletrônico: rcio Eletrônico: AmazonAmazon.com, .com, Americanas.com, etcAmericanas.com, etcÁÁrea Cientifica: BRAVO rea Cientifica: BRAVO –– BrasilianBrasilian VO, Gestão de VO, Gestão de Clima e Clima Espacial,etc. Clima e Clima Espacial,etc.

–– AplicaAplicaçções em Diversos Campos do ões em Diversos Campos do ConhecimentoConhecimento

SICS(MECB INPE) SICS(MECB INPE) –– 300.000 LOC (10 anos)300.000 LOC (10 anos)

Software para Sindicato: Software para Sindicato: ewpewp--SindCTSindCTMMóódulos Controle de Sdulos Controle de Sóócios, Jurcios, Juríídico, dico, ConveniosConvenios,etc,etc

–– 2065 Arquivos de C2065 Arquivos de Cóódigos Fontes (1449 digos Fontes (1449 JSPs/HTMLJSPs/HTML, , 616 JAVA 616 JAVA ClassClass))

–– 253.452 linhas de c253.452 linhas de cóódigo em JAVA (2 anos)digo em JAVA (2 anos)

Page 4: Novas Tecnologias em Arquiteturas de Sistemas · – Objetivo 2: Novas Arquiteturas – Arquitetura Orientada a Serviço - SOA ... – O Serviço tem autonomia sobre a lógica que

MotivaMotivaççãoãoCom relaCom relaçção aos Sistemasão aos Sistemas–– Maior demanda de Uso (Maior demanda de Uso (Web/IntenertWeb/Intenert))–– SeguranSegurançça (compras ona (compras on--line: Posso Comprar?)line: Posso Comprar?)–– Alta disponibilidade (sistema 24/7 ?)Alta disponibilidade (sistema 24/7 ?)–– Alta confiabilidade (faz o que quero sempre?)Alta confiabilidade (faz o que quero sempre?)–– EscalEscaláávelvel (se aumentar a demanda posso crescer o (se aumentar a demanda posso crescer o

sistema?)sistema?)–– Alta capacidade de ManutenAlta capacidade de Manutenççãoão–– Flexibilidade (posso trocar o Gerenciador de Bancos de Flexibilidade (posso trocar o Gerenciador de Bancos de

Dados?)Dados?)–– MultiMulti--LanguageLanguage–– Eficiente (Recursos de MEficiente (Recursos de Mááquina: memquina: memóória, ria,

processador,etc.processador,etc.–– InteroperavelInteroperavel (posso relacionar com outros sistemas e (posso relacionar com outros sistemas e

trocar Informatrocar Informaçções ?)ões ?)–– Autonomia de ServiAutonomia de Serviçços (Distribuios (Distribuiçção de Servião de Serviçços por os por

servidores diversos)servidores diversos)

Page 5: Novas Tecnologias em Arquiteturas de Sistemas · – Objetivo 2: Novas Arquiteturas – Arquitetura Orientada a Serviço - SOA ... – O Serviço tem autonomia sobre a lógica que

ContextoContexto do do TrabalhoTrabalho: A Caltech: A Caltech

Academic DivisionsAcademic Divisions–– BiologyBiology–– Chemistry & Chemical EngineeringChemistry & Chemical Engineering–– Engineering & Applied ScienceEngineering & Applied Science–– Geological & Planetary SciencesGeological & Planetary Sciences–– Humanities & Social SciencesHumanities & Social Sciences–– Physics, Mathematics & AstronomyPhysics, Mathematics & Astronomy–– Interdisciplinary ProgramsInterdisciplinary Programs

Page 6: Novas Tecnologias em Arquiteturas de Sistemas · – Objetivo 2: Novas Arquiteturas – Arquitetura Orientada a Serviço - SOA ... – O Serviço tem autonomia sobre a lógica que
Page 7: Novas Tecnologias em Arquiteturas de Sistemas · – Objetivo 2: Novas Arquiteturas – Arquitetura Orientada a Serviço - SOA ... – O Serviço tem autonomia sobre a lógica que

CACR, Caltech's Center for CACR, Caltech's Center for Advanced Computing ResearchAdvanced Computing Research

““CACR exists to ensure that Caltech is at CACR exists to ensure that Caltech is at the forefront of computational science and the forefront of computational science and engineering (CS&E). CS&E is the practice engineering (CS&E). CS&E is the practice of computer based modeling, simulation of computer based modeling, simulation and data analysis for the study of and data analysis for the study of scientific phenomena and engineering scientific phenomena and engineering designs.designs.””

CACR provides an environment that CACR provides an environment that cultivates multidisciplinary collaborations. cultivates multidisciplinary collaborations.

Currently work with Caltech groups in Currently work with Caltech groups in –– applied mathematics, applied mathematics, –– astronomy, astronomy, –– biology, biology, –– engineering, engineering, –– geophysics, and geophysics, and –– experimental physicsexperimental physics

Page 8: Novas Tecnologias em Arquiteturas de Sistemas · – Objetivo 2: Novas Arquiteturas – Arquitetura Orientada a Serviço - SOA ... – O Serviço tem autonomia sobre a lógica que

Palomar Quest Palomar Quest -- ObservatoryObservatoryThe Palomar Observatory is The Palomar Observatory is located in north San Diego located in north San Diego County, California. County, California.

It is a worldIt is a world--class center of class center of astronomical research that is astronomical research that is owned and operated by the owned and operated by the California Institute of Technology. California Institute of Technology.

The observatory is home to five The observatory is home to five telescopes that are nightly used telescopes that are nightly used for a wide variety of astronomical for a wide variety of astronomical research programs. research programs.

The research is conducted by The research is conducted by Caltech's faculty, postCaltech's faculty, post--doctoral doctoral fellows and students, and by fellows and students, and by researchers at Caltech's researchers at Caltech's collaborating institutions.collaborating institutions.

Page 9: Novas Tecnologias em Arquiteturas de Sistemas · – Objetivo 2: Novas Arquiteturas – Arquitetura Orientada a Serviço - SOA ... – O Serviço tem autonomia sobre a lógica que

4848--inch (1.2 m) Samuel inch (1.2 m) Samuel OschinOschinTelescope Telescope

The Samuel The Samuel OschinOschin Telescope was used to Telescope was used to generate the Second Palomar Observatory generate the Second Palomar Observatory Survey Survey POSS IIPOSS II and the Digital Palomar and the Digital Palomar Observatory Sky Survey Observatory Sky Survey DPOSSDPOSS. .

In 2000 and 2003 the Samuel In 2000 and 2003 the Samuel OschinOschin Telescope Telescope was converted to using a large format CCD was converted to using a large format CCD camera to replace photographic plates, and the camera to replace photographic plates, and the control system was automated.control system was automated.–– Search for moving objects in the Solar SystemSearch for moving objects in the Solar System–– Search for variable stars and galaxies Search for variable stars and galaxies

The new QUEST camera on the Samuel The new QUEST camera on the Samuel OschinOschinTelescope at Palomar has 161 million pixels, Telescope at Palomar has 161 million pixels, making it one of the largest and most capable making it one of the largest and most capable digital cameras in the world.digital cameras in the world.–– There are 112 individual There are 112 individual CCDsCCDs, , –– each 600 x 2400 pixels, each 600 x 2400 pixels, –– arranged in a mosaic of 4 rows or "fingers" of 28 arranged in a mosaic of 4 rows or "fingers" of 28

CCDsCCDs each (2400 x 16800 pixels).each (2400 x 16800 pixels).

Page 10: Novas Tecnologias em Arquiteturas de Sistemas · – Objetivo 2: Novas Arquiteturas – Arquitetura Orientada a Serviço - SOA ... – O Serviço tem autonomia sobre a lógica que

The Palomar Quest Sky SurveyThe Palomar Quest Sky Surveyhttp://http://palquest.orgpalquest.org//

Page 11: Novas Tecnologias em Arquiteturas de Sistemas · – Objetivo 2: Novas Arquiteturas – Arquitetura Orientada a Serviço - SOA ... – O Serviço tem autonomia sobre a lógica que

ObjetivoObjetivo

Pesquisar como as InformaPesquisar como as Informaçções ões Astronômicas são armazenadas e Astronômicas são armazenadas e utilizadas no âmbito do projeto utilizadas no âmbito do projeto PalomarPalomar--QuestQuest SurveySurvey

Pesquisar como os Sistemas e as Pesquisar como os Sistemas e as AplicaAplicaçções são desenvolvidas em ões são desenvolvidas em termos de Engenharia e Arquiteturatermos de Engenharia e Arquitetura

Page 12: Novas Tecnologias em Arquiteturas de Sistemas · – Objetivo 2: Novas Arquiteturas – Arquitetura Orientada a Serviço - SOA ... – O Serviço tem autonomia sobre a lógica que

MetodologiaMetodologia de de PesquisaPesquisa

Objetivo 1:Objetivo 1:–– Entender o Banco de dados para o Entender o Banco de dados para o ““PipeLinePipeLine””–– Construir um Banco de Dados para o 2DPHOTConstruir um Banco de Dados para o 2DPHOT--

BRAVO para o Gerenciador BRAVO para o Gerenciador PostgreSQLPostgreSQL

Objetivo 2:Objetivo 2:–– Implantar uma AplicaImplantar uma Aplicaçção Cliente SOA para o ão Cliente SOA para o

OpenSkyQueryOpenSkyQuery para o para o ““pipelinepipeline””;;–– Implantar uma AplicaImplantar uma Aplicaçção ão ““exemploexemplo”” para o para o

projeto BRAVO.projeto BRAVO.

Page 13: Novas Tecnologias em Arquiteturas de Sistemas · – Objetivo 2: Novas Arquiteturas – Arquitetura Orientada a Serviço - SOA ... – O Serviço tem autonomia sobre a lógica que

ObjetivoObjetivo 1: A base de 1: A base de sistemassistemas de de informainformaççãoão –– BancosBancos de Dadosde Dados

Banco de Dados do Banco de Dados do PipelinePipeline–– Sistema SDSS Sistema SDSS skyserverskyserver

database database andand CASJOBS.CASJOBS.Desenvolvido em Parceria Desenvolvido em Parceria com a Microsoftcom a MicrosoftSQL Server DatabaseSQL Server Database

–– Banco de Dados e Banco de Dados e Aplicativos não Prontos.Aplicativos não Prontos.

–– Muito arquivos espalhados Muito arquivos espalhados no projetono projeto

Banco de Dados Banco de Dados –– BRAVOBRAVO–– Desenvolvimento do 1Desenvolvimento do 1oo

ModeloModelo–– Desenvolvimento do Script Desenvolvimento do Script

em em PostgreSQLPostgreSQL

Table 1: SDSS data sizes (in 2006) in terabytes. About 7 TB online and 10 TB in archive (for reprocessing if needed). Product Raw CompressedPipeline input 25 TB 10 TB Pipeline output (reduced images) 10 TB 4 TB

Catalogs 1 TB 1 TB Binned sky and masks ½ TB ½ TB Atlas images 1TB 1TB

Page 14: Novas Tecnologias em Arquiteturas de Sistemas · – Objetivo 2: Novas Arquiteturas – Arquitetura Orientada a Serviço - SOA ... – O Serviço tem autonomia sobre a lógica que

SDSS SDSS skyserverskyserver databasedatabase

Page 15: Novas Tecnologias em Arquiteturas de Sistemas · – Objetivo 2: Novas Arquiteturas – Arquitetura Orientada a Serviço - SOA ... – O Serviço tem autonomia sobre a lógica que

SQL SQL –– Search ToolsSearch Tools

Page 16: Novas Tecnologias em Arquiteturas de Sistemas · – Objetivo 2: Novas Arquiteturas – Arquitetura Orientada a Serviço - SOA ... – O Serviço tem autonomia sobre a lógica que

O O ModeloModelo parapara o 2DPhoto 2DPhot--BRAVOBRAVOBaseado em Baseado em Imagem Imagem Astronômica Astronômica FITsFITse Informae Informaçções ões Geradas pelo Geradas pelo SextractorSextractor e e 2DPhot .2DPhot .Modelo com Modelo com AproximadamentAproximadamente 40 Entidadese 40 EntidadesModelo Final com Modelo Final com 50 a 60 50 a 60 EntidadesEntidades

create table ASTRO_OBJECT (ID BIGINT not null,NAME CHARACTER VARYING(200) not null,primary key (ID)

);create table BAND (

ID BIGINT not null,NAME CHARACTER VARYING(200) not null,DETECTOR_FK BIGINT,FILTER_FK BIGINT,primary key (ID)

);create table CLASSIFIERS (

ID BIGINT not null,NAME CHARACTER VARYING(200) not null,primary key (ID)

);create table COMPL_PS (

ID BIGINT not null,NAME CHARACTER VARYING(100) not null,PATH CHARACTER VARYING(1024) not null,PROCESSING_FK BIGINT not null,primary key (ID)

);create table DEFAULT_PARAM (

ID BIGINT not null,MINAREA INTEGER not null,DETECT_THRESH INTEGER not null,SATUR_LEVEL BIGINT not null,MAG_ZEROPOINT REAL not null,GAIN REAL not null,PIXEL_SCALE REAL not null,READOUT REAL not null,primary key (ID)

);

Page 17: Novas Tecnologias em Arquiteturas de Sistemas · – Objetivo 2: Novas Arquiteturas – Arquitetura Orientada a Serviço - SOA ... – O Serviço tem autonomia sobre a lógica que

O O ModeloModelo parapara o 2DPhoto 2DPhot--BRAVOBRAVO

Page 18: Novas Tecnologias em Arquiteturas de Sistemas · – Objetivo 2: Novas Arquiteturas – Arquitetura Orientada a Serviço - SOA ... – O Serviço tem autonomia sobre a lógica que

Objetivo 2: Novas Arquiteturas Objetivo 2: Novas Arquiteturas ––Arquitetura Orientada a ServiArquitetura Orientada a Serviçço o --

SOASOA

Page 19: Novas Tecnologias em Arquiteturas de Sistemas · – Objetivo 2: Novas Arquiteturas – Arquitetura Orientada a Serviço - SOA ... – O Serviço tem autonomia sobre a lógica que

Qualidade de um Bom ProjetoQualidade de um Bom ProjetoFatores de qualidade de Fatores de qualidade de McCallMcCall

Manutenabilidade (Posso arrumar um erro?)Flexibilidade (Posso modificar?)Testabilidade (Posso testar?)

Corretude (Ele faz o que eu quero?)Confiabilidade (Faz correto todo o momento?)Eficiência (Utiliza todos os recursos disponíveis?)Integridade (É seguro?)Usabilidade (É projetado para o usuário?)

Portabilidade (Operacional em outra plataforma?)Reusabilidade (Posso reutiliza-lo?)Interoperabilidade (Interfacea com outros sistemas?)

Mudanças Novos Ambientes

Carac.Operacionais

Page 20: Novas Tecnologias em Arquiteturas de Sistemas · – Objetivo 2: Novas Arquiteturas – Arquitetura Orientada a Serviço - SOA ... – O Serviço tem autonomia sobre a lógica que

Precursores da Qualidade: Coesão Precursores da Qualidade: Coesão e Acoplamentoe Acoplamento

•• CoesãoCoesão•• A coesão de um componente A coesão de um componente éé uma medida da uma medida da

proximidade das relaproximidade das relaçções entre seus componentesões entre seus componentes•• Um componente Um componente funfunçção lão lóógica ou entidades simples gica ou entidades simples

•• NNííveis de Coesão:veis de Coesão:•• Funcional Funcional cada parte necesscada parte necessáária p/ execuria p/ execuçção de ão de

funfunçção (ão (melhor coesãomelhor coesão); ); •• SeqSeqüüencial encial output serve como inputoutput serve como input•• ComunicaComunicaçção ão mesmo input e outputmesmo input e output•• Procedimento Procedimento uma sequma seqüüência de controleência de controle•• TemporalTemporal•• LLóógicagica•• CoincidentalCoincidental ((pior coesãopior coesão))

•• OO OO coesão naturalcoesão natural

Page 21: Novas Tecnologias em Arquiteturas de Sistemas · – Objetivo 2: Novas Arquiteturas – Arquitetura Orientada a Serviço - SOA ... – O Serviço tem autonomia sobre a lógica que

Precursores da Qualidade: Coesão Precursores da Qualidade: Coesão e Acoplamentoe Acoplamento

AcoplamentoAcoplamento–– Grau de interconexões entre os Grau de interconexões entre os

componentescomponentes–– ÉÉ desejdesejáável que os sistemas sejam vel que os sistemas sejam

fracamente acopladosfracamente acoplados–– OO: favorece o acoplamento fraco pois OO: favorece o acoplamento fraco pois

não tem estado compartilhadonão tem estado compartilhado

Page 22: Novas Tecnologias em Arquiteturas de Sistemas · – Objetivo 2: Novas Arquiteturas – Arquitetura Orientada a Serviço - SOA ... – O Serviço tem autonomia sobre a lógica que

ArquiteturasArquiteturas

Page 23: Novas Tecnologias em Arquiteturas de Sistemas · – Objetivo 2: Novas Arquiteturas – Arquitetura Orientada a Serviço - SOA ... – O Serviço tem autonomia sobre a lógica que

Projeto de Arquitetura: ConceitosProjeto de Arquitetura: Conceitos

•• Subsistema Subsistema éé um sistema cuja operaum sistema cuja operaçção não depende ão não depende dos servidos serviçços de outros subsistemas. os de outros subsistemas. •• Composto por mComposto por móódulosdulos•• Interfaces são utilizadas p/ comunicaInterfaces são utilizadas p/ comunicaçção entre ão entre

subsistemassubsistemas•• MMóódulo dulo componente que fornece e utiliza um ou mais componente que fornece e utiliza um ou mais

serviserviçços p/ outros mos p/ outros móódulosdulos•• Modelo afeta:Modelo afeta:

•• DesempenhoDesempenho•• RobustezRobustez•• DistribuiDistribuiççãoão•• ManutenManutenççãoão

Page 24: Novas Tecnologias em Arquiteturas de Sistemas · – Objetivo 2: Novas Arquiteturas – Arquitetura Orientada a Serviço - SOA ... – O Serviço tem autonomia sobre a lógica que

Desenvolvimento MonolDesenvolvimento MonolííticoticoAplicaAplicaçções vistas como um ões vistas como um bloco bloco úúniconicoForte acoplamento entre as Forte acoplamento entre as camadas lcamadas lóógicasgicasSomente uma camada Somente uma camada ffíísicasicaBaixa coesãoBaixa coesãoDificuldade de ManutenDificuldade de ManutenççãoãoConseqConseqüüência: ência: –– Dificuldade de Dificuldade de

modificamodificaçção.ão.–– AlteraAlteraçções podem ões podem

introduzir erros em introduzir erros em partes aparentemente partes aparentemente não relacionadasnão relacionadas

Camada de Apresentação

Lógica de Negócios

Camada de Acesso à dados (Integração)

Banco de Dados

Page 25: Novas Tecnologias em Arquiteturas de Sistemas · – Objetivo 2: Novas Arquiteturas – Arquitetura Orientada a Serviço - SOA ... – O Serviço tem autonomia sobre a lógica que

Cliente Cliente –– Servidor: 2 Camadas Servidor: 2 Camadas FFíísicassicas

Acrescenta certa quantidade de Acrescenta certa quantidade de escalabilidadeescalabilidade e flexibilidade;e flexibilidade;DiminuiDiminuiçção do acoplamento duas ão do acoplamento duas camadas fcamadas fíísicas: banco de dados sicas: banco de dados poderia ser totalmente substitupoderia ser totalmente substituíído do desde que as interfaces de acesso desde que as interfaces de acesso permanecessem as mesmaspermanecessem as mesmasProblemas:Problemas:–– Camadas de apresentaCamadas de apresentaçção e ão e

negnegóócios ainda fortemente cios ainda fortemente acopladas;acopladas;

–– Dificuldade de manutenDificuldade de manutençção e ão e distribuidistribuiççãoão

–– Forte dependência de Forte dependência de plataforma, necessidade plataforma, necessidade

–– aumento de desempenho de aumento de desempenho de hardware.hardware.

Camada de Apresentação

Lógica de Negócios

Banco de Dados

Lógica de Acesso à dados

Page 26: Novas Tecnologias em Arquiteturas de Sistemas · – Objetivo 2: Novas Arquiteturas – Arquitetura Orientada a Serviço - SOA ... – O Serviço tem autonomia sobre a lógica que

Arquitetura 3 Camadas FArquitetura 3 Camadas FíísicassicasAlto grau de Alto grau de modularizamodularizaççãoão;;Fraco acoplamento entre os Fraco acoplamento entre os mmóódulos;dulos;Melhor atendimento aos Melhor atendimento aos requisitos não funcionais: requisitos não funcionais: escalabilidadeescalabilidade, conectividade, , conectividade, tolerância tolerância àà falhas;falhas;Mais facilidade de manutenMais facilidade de manutençção;ão;Mais facilidade para Mais facilidade para distribuidistribuiçção;ão;Ponto fraco:Ponto fraco:–– Maior necessidade de Maior necessidade de

conhecimento e conhecimento e profissionalismo da equipe profissionalismo da equipe ttéécnica.cnica.

–– Profissionais cada vez mais Profissionais cada vez mais especializados em diversas especializados em diversas tecnologiastecnologias

Banco de Dados

Lógica de Acesso à dados

Lógica de Negócios

Camada de Apresentação

Page 27: Novas Tecnologias em Arquiteturas de Sistemas · – Objetivo 2: Novas Arquiteturas – Arquitetura Orientada a Serviço - SOA ... – O Serviço tem autonomia sobre a lógica que

A plataforma A plataforma WebWebCaracterCaracteríísticas:sticas:–– Baseada em HTTP (RFC 2068)Baseada em HTTP (RFC 2068)–– Protocolo simples de transferência de arquivosProtocolo simples de transferência de arquivos–– Sem estado (não mantSem estado (não mantéém sessão aberta)m sessão aberta)

www.e-webproject.com.brAbre conexão para endereço:80

Requisição.... GET / Index.html

Uma resposta...Apresenta Index.html

Fecha Conexão

Page 28: Novas Tecnologias em Arquiteturas de Sistemas · – Objetivo 2: Novas Arquiteturas – Arquitetura Orientada a Serviço - SOA ... – O Serviço tem autonomia sobre a lógica que

Tecnologias para o ServidorTecnologias para o ServidorCaracterCaracteríísticas:sticas:–– Rodam do lado do servidor, portanto, não dependem de Rodam do lado do servidor, portanto, não dependem de

suporte por parte dos suporte por parte dos browsersbrowsers–– ““BrowsersBrowsers”” fornecem apenas a interface do usufornecem apenas a interface do usuááriorio–– Interceptam o curso normal da comunicaInterceptam o curso normal da comunicaççãoão

Recebem dados via requisiRecebem dados via requisiçções HTTP (GET e POST)ões HTTP (GET e POST)Devolvem dados atravDevolvem dados atravéés de respostas HTTPs de respostas HTTP

Categorias de TecnologiasCategorias de Tecnologias–– CGI CGI -- CommonCommon GatewayGateway Interface Interface –– APIsAPIs: ISAPI, NSAPI, Apache API, : ISAPI, NSAPI, Apache API, ServletServlet API, ...API, ...–– Scripts: ASP, JSP, Scripts: ASP, JSP, LiveWireLiveWire (SSJS), (SSJS), ColdCold FusionFusion, PHP, ..., PHP, ...

Page 29: Novas Tecnologias em Arquiteturas de Sistemas · – Objetivo 2: Novas Arquiteturas – Arquitetura Orientada a Serviço - SOA ... – O Serviço tem autonomia sobre a lógica que

APIsAPIs ServletServletAPI independente de API independente de plataforma e praticamente plataforma e praticamente independente de fabricante independente de fabricante Componentes são escritos Componentes são escritos em Java e se chamam em Java e se chamam servletsservletsComo os componentes Como os componentes SAPI proprietSAPI proprietáários, rodam rios, rodam dentro do servidor, mas dentro do servidor, mas atravatravéés de uma Ms de uma Mááquina quina Virtual JavaVirtual JavaDisponDisponíível como vel como ‘‘plugplug--inin’’ou conector para ou conector para servidores servidores ueue não o não o suportam diretamentesuportam diretamenteNativo em servidores Nativo em servidores SunSun, , IBM, ...IBM, ...

Servidor HTTP

Interface ISAPI

Componente ISAPIOferecendo Interface

Servlet API via conector

ServletJVM

AplicaçãoRemota

Page 30: Novas Tecnologias em Arquiteturas de Sistemas · – Objetivo 2: Novas Arquiteturas – Arquitetura Orientada a Serviço - SOA ... – O Serviço tem autonomia sobre a lógica que

Linguagens Scripts e JSP Linguagens Scripts e JSP –– Java Java Server Server PagePage

Coloca a linguagem de programaColoca a linguagem de programaçção dentro do HTML ( e ão dentro do HTML ( e não o contrnão o contráário)rio)

Permite o controle da aparência e estrutura da pPermite o controle da aparência e estrutura da páágina em gina em softwares de design ( softwares de design ( DreamWeaverDreamWeaver, FrontPage), FrontPage)

PPáágina fica mais leggina fica mais legíívelvel

Quando houver muita programaQuando houver muita programaçção, cão, cóódigo pode ser digo pode ser escondido em escondido em servletsservlets, , JavaBeansJavaBeans, componentes ( por , componentes ( por exemplo: componentes exemplo: componentes ActiveXActiveX, no caso do ASP), no caso do ASP)

Alguns dos mais populares: Alguns dos mais populares: Microsoft Microsoft ActiveActive Server Server PagesPages( ASP), ( ASP), SunSun JavaServerJavaServer PagesPages ( JSP), ( JSP), MacromediaMacromedia ColdColdFusionFusion, PHP, PHP

Page 31: Novas Tecnologias em Arquiteturas de Sistemas · – Objetivo 2: Novas Arquiteturas – Arquitetura Orientada a Serviço - SOA ... – O Serviço tem autonomia sobre a lógica que

Exemplo de Exemplo de ServletServlet e JSP e JSP equivalenteequivalente

import java.io.*;import javax.servlet.*;import javax.servlet.http.*;public class SimpleServlet extends HttpServlet {public void doGet (HttpServletRequest request,HttpServletResponse response)throws ServletException, IOException {PrintWriter out;response.setContentType("text/html");out = response.getWriter();String user = request.getParameter("usuario");if (user == null)user = "World";out.println("<HTML><HEAD><TITLE>");out.println("Simple Servlet Output");out.println("</TITLE></HEAD><BODY>");out.println("<H1>Simple Servlet Output</H1>");out.println("<P>Hello, " + user);out.println("</BODY></HTML>");out.close();}}

<HTML><HEAD><TITLE>Simple Servlet Output</TITLE></HEAD><BODY><%String user =request.getParameter("usuario");if (user == null)user = "World";%><H1>Simple Servlet Output</H1><P>Hello, <%= user %></BODY></HTML>

SERVLET: Bom para Processamento

JSP: Bom paraapresentação

Page 32: Novas Tecnologias em Arquiteturas de Sistemas · – Objetivo 2: Novas Arquiteturas – Arquitetura Orientada a Serviço - SOA ... – O Serviço tem autonomia sobre a lógica que

Arquitetura: CenArquitetura: Cenááriosrios

Page 33: Novas Tecnologias em Arquiteturas de Sistemas · – Objetivo 2: Novas Arquiteturas – Arquitetura Orientada a Serviço - SOA ... – O Serviço tem autonomia sobre a lógica que

UtilizaUtilizaçção de JSP na Aplicaão de JSP na Aplicaçção: ão: Arquitetura ElementarArquitetura Elementar

try { Class.forName(jdbcDriver).newInstance(); conn = DriverManager.getConnection(dbURL,username, passwd); stmt = conn.createStatement(); rs = stmt.executeQuery(“SELECT * FROM CLIENTES”);ResultSetMetaData rsmd = rs.getMetaData(); int numCols = rsmd.getColumnCount(); %>

Código SQL no

JSP

Browser

JSP/Servlet

Page 34: Novas Tecnologias em Arquiteturas de Sistemas · – Objetivo 2: Novas Arquiteturas – Arquitetura Orientada a Serviço - SOA ... – O Serviço tem autonomia sobre a lógica que

Introduzindo classes JAVA: Introduzindo classes JAVA: Desacoplamento das CamadasDesacoplamento das Camadas

DAO

Apresentação Integração

JSP/Servlet

JSP/Servlet

<% Clientes[] clientes = ClientesDAO.getInstance().loadAll();%> <table> <% for(int i=0; i <clientes.length; i++) { %>

<tr> <td><%=clientes[i].getNome()%><td> <td><%=clientes[i].getRg()%></td>

</tr> <%}%>

JSP usando

DAO

Page 35: Novas Tecnologias em Arquiteturas de Sistemas · – Objetivo 2: Novas Arquiteturas – Arquitetura Orientada a Serviço - SOA ... – O Serviço tem autonomia sobre a lógica que

Introduzindo Componentes: Introduzindo Componentes: Melhoria na Camada de Melhoria na Camada de

ApresentaApresentaççãoão

Controller DAO

Apresentação Integração

JSP/Servlet

JSP/Servlet

Page 36: Novas Tecnologias em Arquiteturas de Sistemas · – Objetivo 2: Novas Arquiteturas – Arquitetura Orientada a Serviço - SOA ... – O Serviço tem autonomia sobre a lógica que

Introduzindo Componentes: Introduzindo Componentes: Mais Desacoplamento e Ganhos em EscalaMais Desacoplamento e Ganhos em Escala

Controller

RequestDispatcher

Command BusinessDelegate

Servicelocator

DAO

Apresentação Negócios Integração

JSP/Servlet

JSP/Servlet

Page 37: Novas Tecnologias em Arquiteturas de Sistemas · – Objetivo 2: Novas Arquiteturas – Arquitetura Orientada a Serviço - SOA ... – O Serviço tem autonomia sobre a lógica que

Modelo de Modelo de ““nn”” Camadas Camadas –– n n TierTier

Page 38: Novas Tecnologias em Arquiteturas de Sistemas · – Objetivo 2: Novas Arquiteturas – Arquitetura Orientada a Serviço - SOA ... – O Serviço tem autonomia sobre a lógica que

SunSun Java Java CenterCenter SJC SJC ––Core Core J2EEJ2EE Design Design

PatternsPatterns

Page 39: Novas Tecnologias em Arquiteturas de Sistemas · – Objetivo 2: Novas Arquiteturas – Arquitetura Orientada a Serviço - SOA ... – O Serviço tem autonomia sobre a lógica que
Page 40: Novas Tecnologias em Arquiteturas de Sistemas · – Objetivo 2: Novas Arquiteturas – Arquitetura Orientada a Serviço - SOA ... – O Serviço tem autonomia sobre a lógica que

SOA SOA –– Service Service Oriented ArchitectureOriented Architecture

Page 41: Novas Tecnologias em Arquiteturas de Sistemas · – Objetivo 2: Novas Arquiteturas – Arquitetura Orientada a Serviço - SOA ... – O Serviço tem autonomia sobre a lógica que

Modelo Centralizado para Modelo Centralizado para DistribuDistribuíídodo

ProviderProvider

Provider

Provider

Provider

Provider

Central Provider

Modelo Centralizado

• Domínio/Identidade de Rede Único• Repositório Único• Controle Centralizado• Ponto de Falha Único• Serviço é igual e sempre o Mesmo

Modelo Distribuído (Open Federated Model)

• Vários Domínios de Rede• Sem Controle Centralizado• Sem Ponto de Falha Único• Serviço pode ser igual mas não

necessariamente.

Page 42: Novas Tecnologias em Arquiteturas de Sistemas · – Objetivo 2: Novas Arquiteturas – Arquitetura Orientada a Serviço - SOA ... – O Serviço tem autonomia sobre a lógica que

SOA e WebSOA e Web--ServicesServices

““A software system designed to support interoperable A software system designed to support interoperable machinemachine--toto--machine interaction over a network. It has an machine interaction over a network. It has an interface described in a machineinterface described in a machine--processableprocessable format.format.”” --W3CW3C

PalavrasPalavras ChaveChave: : InteroperabilidadeInteroperabilidade e Sistemas e Sistemas DistribuDistribuíídosdos

Not a new idea:Not a new idea:–– RPC/RMIRPC/RMI–– CORBACORBA–– DCOMDCOM–– XMLXML--RPCRPC

Page 43: Novas Tecnologias em Arquiteturas de Sistemas · – Objetivo 2: Novas Arquiteturas – Arquitetura Orientada a Serviço - SOA ... – O Serviço tem autonomia sobre a lógica que

PrincPrincíípiospios de SOAde SOAEncapsulamento do Serviço– Esconder detalhes detalhes de implementação e código

Autonomia do Serviço– O Serviço tem autonomia sobre a lógica que ele encapsula

Acoplamento Fraco ou Baixo– Minimizar dependências

Contrato de Serviço– Acordo com as funções que presta, descritos por documentos

descritoresComposição de Serviços– Os serviços podem ser agregados formando coleções de

serviços.Diretório de Serviços (Service discoverability)– Serviços podem ser encontrados and agregados através de

mecanismos de diretórios (listas ou páginas amarelas)

Page 44: Novas Tecnologias em Arquiteturas de Sistemas · – Objetivo 2: Novas Arquiteturas – Arquitetura Orientada a Serviço - SOA ... – O Serviço tem autonomia sobre a lógica que

A A ArquiteturaArquitetura SOASOA

Page 45: Novas Tecnologias em Arquiteturas de Sistemas · – Objetivo 2: Novas Arquiteturas – Arquitetura Orientada a Serviço - SOA ... – O Serviço tem autonomia sobre a lógica que

A A ArquiteturaArquitetura de um de um SistemaSistema de de NegNegóóciocio usandousando SOASOA

Page 46: Novas Tecnologias em Arquiteturas de Sistemas · – Objetivo 2: Novas Arquiteturas – Arquitetura Orientada a Serviço - SOA ... – O Serviço tem autonomia sobre a lógica que

O O ProjetoProjeto dos dos ObservatObservatóóriosriosVirtuaisVirtuais –– VOVO

IVOA IVOA –– International VO AllianceInternational VO Alliance

Page 47: Novas Tecnologias em Arquiteturas de Sistemas · – Objetivo 2: Novas Arquiteturas – Arquitetura Orientada a Serviço - SOA ... – O Serviço tem autonomia sobre a lógica que

ExemploExemplo do NVO (US)do NVO (US)

Registry

OAIPublish

Registry

OAIPublish

Registry

OAI Query

Registry

OAI QueryRegistry

OAIPublish

Registry

OAIPublish

DIS

1

2

3

4Caltech

NCSAJHU/StSci

Goddard

Page 48: Novas Tecnologias em Arquiteturas de Sistemas · – Objetivo 2: Novas Arquiteturas – Arquitetura Orientada a Serviço - SOA ... – O Serviço tem autonomia sobre a lógica que

DataScope

Page 49: Novas Tecnologias em Arquiteturas de Sistemas · – Objetivo 2: Novas Arquiteturas – Arquitetura Orientada a Serviço - SOA ... – O Serviço tem autonomia sobre a lógica que
Page 50: Novas Tecnologias em Arquiteturas de Sistemas · – Objetivo 2: Novas Arquiteturas – Arquitetura Orientada a Serviço - SOA ... – O Serviço tem autonomia sobre a lógica que
Page 51: Novas Tecnologias em Arquiteturas de Sistemas · – Objetivo 2: Novas Arquiteturas – Arquitetura Orientada a Serviço - SOA ... – O Serviço tem autonomia sobre a lógica que

O O OpenSkyQueryOpenSkyQuery e e SkyNodesSkyNodesSkyQuerySkyQuery éé uma Aplicauma Aplicaçção Concentradora e que ão Concentradora e que disponibiliza o acesso a Ndisponibiliza o acesso a Nóós(s(SkySky NodesNodes) de um Sistema ) de um Sistema DistribuDistribuíído.do.

SkyNodeSkyNode éé uma interface dos Numa interface dos Nóós que respeita as regras s que respeita as regras (protocolos) de (protocolos) de ““FederaFederaççãoão”” do do SkyQuerySkyQuery. .

No coraNo coraçção do ão do SkyQuerySkyQuery existe um cruzamento existe um cruzamento spacialspacial de de catcatáálogos, ou seja, logos, ou seja, éé posspossíível cruzar informavel cruzar informaçções existentes ões existentes nos nnos nóós.s.

Portanto o Portanto o SkyQuerySkyQuery tem acesso a cattem acesso a catáálogos armazenados logos armazenados em localidades geogrem localidades geográáficas diferentes.ficas diferentes.

Page 52: Novas Tecnologias em Arquiteturas de Sistemas · – Objetivo 2: Novas Arquiteturas – Arquitetura Orientada a Serviço - SOA ... – O Serviço tem autonomia sobre a lógica que

O O OpenSkyQueryOpenSkyQuery e e SkyNodesSkyNodes

Page 53: Novas Tecnologias em Arquiteturas de Sistemas · – Objetivo 2: Novas Arquiteturas – Arquitetura Orientada a Serviço - SOA ... – O Serviço tem autonomia sobre a lógica que

FluxoFluxo de Dadosde Dados

SkyNode 1

SkyQuery

SkyNode 2

SkyNode 3

query

Page 54: Novas Tecnologias em Arquiteturas de Sistemas · – Objetivo 2: Novas Arquiteturas – Arquitetura Orientada a Serviço - SOA ... – O Serviço tem autonomia sobre a lógica que

ServiServiççosos OferecidosOferecidos WebWeb--ServicesServicesThe following operations are supported. For a formal definition,The following operations are supported. For a formal definition, please review the Service Description.please review the Service Description.

* * GetTablesGetTablesReturns tables.Returns tables.

* * MakePlanMakePlanCreates an Creates an ExecPlanExecPlan. This runs cost queries as well. (req. for correct plan orderin. This runs cost queries as well. (req. for correct plan ordering)g)

* * GetAllSkyNodesVOTableGetAllSkyNodesVOTableLists names of all available node Lists names of all available node shortnamesshortnames in a in a votablevotable..

* * GetAllSkyNodesGetAllSkyNodesLists names of all available node Lists names of all available node shortnamesshortnames..

* * GetMetaTablesGetMetaTablesReturns column info for one column.Returns column info for one column.

* * GetMetaColumnsGetMetaColumnsReturns an array of column info.Returns an array of column info.

* * GetColumnsGetColumnsReturns an array of column names.Returns an array of column names.

* * NodeContainsColumnNodeContainsColumn

* * UploadTableUploadTableReturns literal table nameReturns literal table name

* * SubmitQuerySubmitQueryRuns a single node query.Runs a single node query.

* * GetTableInfoGetTableInfoReturns column info for one column.Returns column info for one column.

* * SubmitDistributedQuerySubmitDistributedQueryRuns a distributed query Runs a distributed query queryquery by making a plan and then executing it by making a plan and then executing it -- you may call the two steps you may call the two steps seperatelyseperately if you wish to view the plan or if you wish to view the plan or

track progress.track progress.

* * GetColumnInfoGetColumnInfoReturns column info for one column.Returns column info for one column.

* * SubmitPlanSubmitPlanExecutes a plan and returns results.Executes a plan and returns results.

* * SubmitDistributedQuerySigmaSubmitDistributedQuerySigmaAllows Allows MyDataMyData Sigma Sigma

Page 55: Novas Tecnologias em Arquiteturas de Sistemas · – Objetivo 2: Novas Arquiteturas – Arquitetura Orientada a Serviço - SOA ... – O Serviço tem autonomia sobre a lógica que

Um Um ExemploExemplo: : WebFindingClustersWebFindingClusters

Interfaces JSPs

loadData.java Servlet +Classes e Classes AXIS

PostgreSQL - Database

RequestResponse

Page 56: Novas Tecnologias em Arquiteturas de Sistemas · – Objetivo 2: Novas Arquiteturas – Arquitetura Orientada a Serviço - SOA ... – O Serviço tem autonomia sobre a lógica que

ConclusãoConclusãoOs Sistemas (Os Sistemas (ProvidersProviders) devem ser desenvolvidos ) devem ser desenvolvidos usando arquiteturas Susando arquiteturas Sóólidas e robustas.lidas e robustas.Portais de Projetos (BRAVO, Clima Espacial, etc) Portais de Projetos (BRAVO, Clima Espacial, etc) podem ser construpodem ser construíídos com objetivo de dos com objetivo de ““FederarFederar””NNóós.s.Pesquisas em Engenharia de Software Pesquisas em Engenharia de Software (Arquitetura) devem ser intensificadas no INPE e (Arquitetura) devem ser intensificadas no INPE e principalmente fortalecida pela pprincipalmente fortalecida pela póóss--graduagraduaçção ão para atender a demanda dos projetos.para atender a demanda dos projetos.HHáá muitos conceitos envolvidos quando se muitos conceitos envolvidos quando se trabalha com SOA e muitos ainda poucos trabalha com SOA e muitos ainda poucos explorados (Pesquisa) como a Qualidade de explorados (Pesquisa) como a Qualidade de ServiServiçços.os.

Page 57: Novas Tecnologias em Arquiteturas de Sistemas · – Objetivo 2: Novas Arquiteturas – Arquitetura Orientada a Serviço - SOA ... – O Serviço tem autonomia sobre a lógica que

Obrigado !Obrigado [email protected]@lac.inpe.br