Objetivos da Inovação do Curso

81
Objetivos da Inovação do Curso Tomar contato com recentes tecnologias para Internet: XML. Estimular novas áreas de trabalhos/pesquisas. Foco: tornar os sistemas interoperáveis, ou comunicáveis. É importante fazer usos de padrões abertos. Isto é, evitar padrões e software proprietários. Há muitos padrões para atender melhor cada tipo de aplicação, fragmentando o alcance de cada um deles. XML ajuda a uni-los. Apresentação de um projeto básico: Será definido as linhas gerais do trabalho. Espera-se que se identifique o uso de estruturas de dados. O incremento de funcionalidades além do básico é bastante desejável. Inclusão de documentação e relatório do trabalho.

description

Objetivos da Inovação do Curso. Tomar contato com recentes tecnologias para Internet: XML. Estimular novas áreas de trabalhos/pesquisas. Foco: tornar os sistemas interoperáveis, ou comunicáveis. É importante fazer usos de padrões abertos. Isto é, evitar padrões e software proprietários. - PowerPoint PPT Presentation

Transcript of Objetivos da Inovação do Curso

Page 1: Objetivos da Inovação do Curso

Objetivos da Inovação do Curso

• Tomar contato com recentes tecnologias para Internet: XML.

• Estimular novas áreas de trabalhos/pesquisas.

• Foco: tornar os sistemas interoperáveis, ou comunicáveis.– É importante fazer usos de padrões abertos. Isto é, evitar padrões e

software proprietários.

– Há muitos padrões para atender melhor cada tipo de aplicação, fragmentando o alcance de cada um deles. XML ajuda a uni-los.

• Apresentação de um projeto básico:– Será definido as linhas gerais do trabalho.

– Espera-se que se identifique o uso de estruturas de dados.

– O incremento de funcionalidades além do básico é bastante desejável.

– Inclusão de documentação e relatório do trabalho.

Page 2: Objetivos da Inovação do Curso

XMLeXtensible Markup Language

Um alcance maior com a independência de plataformas

Page 3: Objetivos da Inovação do Curso

Rapidamente: Como é XML?

<?xml version="1.0"?> <!DOCTYPE greeting SYSTEM "hello.dtd"> <greeting>Hello, world!</greeting>

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE greeting [ <!ELEMENT greeting (#PCDATA)>]><greeting>Hello, world!</greeting>

PCDATA: Parseable character data Well-Formed XML Documents

Page 4: Objetivos da Inovação do Curso

XML

• É um formato de marcação extensível para domínios de aplicação.

• Teve origem no SGML e na experiência com HTML

• Parser - faz uso extenso do analisador sintático.

• DTD - Data Type Definition

• Schema - alternativa com definição semântica enriquecida do DTD.

• Xpath - XML Path Language

• XSL - Extensible Stylesheet Language

• XLL - XML Linking Language (Xlink + Xpointer + Xpath)

• Namespace - similar ao namespace do C++ ou package do Java.

Page 5: Objetivos da Inovação do Curso

Onde XML é usado?

• Melhor perguntar onde XML não é usado.

• XML se aplica quando algo faz uso de:– (representação/especificação de) dados e conteúdos.

– Comunicação, e-business, e-services (XML-RPC, SOAP, ebXML)

– interface gráfica (XUL - )

– multimídia (SMIL - synchronized multimedia integration language)

– makefile e arquivos de configuração (ex: Apache, Java 1.4)

Page 6: Objetivos da Inovação do Curso

XML por toda parte

• DocBook

• MathML

• CML

• VoiceXML

• WML

Page 7: Objetivos da Inovação do Curso

Introdução + Tutorial + Referência em XML• Sites principais

– www.w3.org,

– www.startkabel.nl/k/xml/

– www.xml.com (org)

– www.xmlhack.com

– www.javacommerce.com/tutorial/xmldev/index.html

– www.xml.org

• Livros:– Desvendando XML (New Riders), Steven Holzner

– Java XML (O’Reilly), Benoit Marchal

– www.oreilly.com (capítulos gratuitos)

– http://www.extensibility.com/resources/books_wrox.asp

– NÃO COMPREM O “XML BLACK BOOK”.

Page 8: Objetivos da Inovação do Curso

Tutorial na Internet

• http://www.w3schools.com/

• http://www6.software.ibm.com/developerworks/education/co-xmsg/co-xmsg-1-1.html

• http://www-106.ibm.com/developerworks/education/tutorial-prog/parsing.html

• http://www6.software.ibm.com/developerworks/education/wsbasics/index.html

• XPath

– http://geneura.ugr.es/~victor/cursillos/xml/XPath/

• http://www.sun.com/xml/developers/xsl/

• Namespace

– http://www.simonstl.com/articles/namespaces/index.html

– http://www.jclark.com/xml/xmlns.htm

– http://www.xml.com/pub/a/2000/03/08/namespaces/index.html

Page 9: Objetivos da Inovação do Curso

Programas e códigos

• Software– Java J2SE (J2SDK) (http://java.sun.com/j2se/1.4/)

– www.apache.org (xml)

– Editores de XML: XML Spy e www.xmleverywhere.com/cooktop/

• Exercícios práticos on-line:– http://zvon.org/xxl/XMLTutorial/General/book.html

• Exemplos de uso de XML na Internet– http://www.posc.org/ebiz/xmlLive.shtml

– http://technet.oracle.com/sample_code/content.html

– http://www.sys-con.com/xml/source/

– http://newinstance.com/writing/javaxml/examples.html

Page 10: Objetivos da Inovação do Curso

Editoras - livros gratuitos

• Livros da Sun:

– Java: http://java.sun.com/docs/books/

– Xml: http://java.sun.com/xml/tutorial_intro.html

– http://www.mindview.net/Books/DownloadSites• http://www.mcp.com/que/results_que.cfm?parameter=XML&scope=title

• http://www.mcp.com/que/display_que.cfm?itemhdr=Sample%20Chapter&itemloc=chapter&item=0789724766

• http://www.oreilly.com/catalog/learnxml/chapter/ch02.html

• http://www.oreilly.com/catalog/docbook/chapter/book/docbook.html

• http://www.oreilly.com/catalog/orxmlapp/chapter/index.html

• http://www.oreilly.com/catalog/javaxml/chapter/ch09.html

• http://www.ibiblio.org/xml/books/bible/examples/

• http://www.extensibility.com/resources/books_wrox.asp

• http://xmlwriter.net/books/xml_books.shtml

Page 11: Objetivos da Inovação do Curso

Buzz words

• Componentes do XML: XSL, XLL, SAX, DOM, Xlink, XPointers

• CGI tradicional: HTML, DHTML, JHTML, SHTML, XHTML

• Markup Languages: MathML, MusicML, GML, CML, WML, -UML-

• Ferramentas XML no Apache: Cocoon, Xalan, Xerces,

• BD: JDBC-ODBC, JDO, RDBMS, ODBMS

• Plataforma Java: Servlet, RMI, JavaBeans, JSP, EJB, JavaIDL,

• Tiny HTML - Um subconjunto do HTML apropriado para Palm Pilots.

• VoxML - The Motorola ML que permite interação voz-aplicação.

• TTML - The Tagged Text ML é um subconjunto HTML desenvolvido p/ Nokia.

• HDML - The Handheld Devices ML é uma versão simples de HTML para dispositivos de mão, handheld.

• OMF - Weather Observation Markup Format codifica observações meteorológicas.

Page 12: Objetivos da Inovação do Curso

Projeto: Biblioteca de documentos

Navegador

HTML /JavaScript

Cliente Servidor

Apache

Servlets

xml API

BD/Diretorio

xml, pdf, ps

Páginas HTML

html

form

html

Page 13: Objetivos da Inovação do Curso

Tópicos e grupos

• HTML - CSS - JavaScript (grupo A)

• Especificação de Use Cases da interação do usuário (grupo A)

• Java JDK - Servlet (grupo B)

• Apache + Coccon + Tomcat (grupo B)

• Editores de DTD, Schema, XSL (grupo C)

• XML - XSL - XLL (Xpath - Xlink - Xpointer) (grupo C)

• XML - DTD - DocBook - FOP (grupo D)

• XML - Xquery - BD (JDBC) (grupo E)

• XML - SMIL (grupo F)

• Relatórios

Page 14: Objetivos da Inovação do Curso

HTML

• Exemplo de upload em HTML:– http://www.w3.org/2000/09/webdata/xsv

• Arquitetura de Web sites (Arquitetura de design)– http://www.ccuec.unicamp.br/treinamentos/webpro/– http://www.ambysoft.com/userInterfaceDesign.pdf

• Desenhar e definir as páginas da biblioteca digital:– organizar as telas de consultas conforme a interação por: palavras-chave,

título, autor, ...– Usar CSS para apresentação e Javascript para a interação.– Criar a tela de entrada de documentos: como txt, doc, ps, pdf.– Permitir a criação de cadastro, definir o layout e os links preferido e salvá-

los no site.

• Interagir com o responsável do DTD para definir o conteúdo das telas.

Page 15: Objetivos da Inovação do Curso

Itens/sites relevantes para www

• É desejável saber o que é http (www.whatis.com)

• Tutorial/Primers sobre Html / JavaScript (Ramalho)– http://www.w3.org

– http://www.ncsa.uiuc.edu/General/Internet/WWW/HTMLPrimer.html

– http://www.htmlgoodies.com/

– http://training.oreilly.com/

– http://www.oreilly.com/catalog/jscript2/examples/

– http://developer.netscape.com/library/documentation/htmlguid/index.htm

• Web-design– http://ituser.it.bton.ac.uk/staff/idd/

– http://info.med.yale.edu/caim/manual/contents.html

Page 16: Objetivos da Inovação do Curso

Interface do nosso “Portal”

• Pesquisar por data, autor, titulo, palavras-chave

• Data: período (maior, menor, entre), mês, ano.

• Quantos resultados.

• Palavras-chave: exato, palavras similares, (and, or)

• Categoria/área do assunto.

• Instituição de origem.

• Incluir dicas sobre campos usando ToolTips http://webdeveloper.earthweb.com/pagedev/webjs/item/0,3602,12760_26671,00.html

• Acessórios relevantes não mencionados aqui.

Page 17: Objetivos da Inovação do Curso

Estabelecer os possíveis casos de uso

Consultapor autor

Lista deresultados

Computador

Navegador

Computador

Page 18: Objetivos da Inovação do Curso

Java• APIs do servidor Apache (Tópico XML)

– Xerces - XML parsers– Xalan - XSLT stylesheet processors– Cocoon - XML-based web publishing– FOP - XSL formatting objects– Xang - Rapid development of dynamic server pages, in JavaScript

• Servlets (Tópico servidor)– Software: Tomcat do Apache (http://jakarta.apache.org/tomcat/).– http://c2.com/cgi/wiki?ServletDesign

• Interagir com HTML e XSL

• Artigos:– http://www.xml-data-servers.com/– http://65.1.136.127/developerlife/saxtutorial1/default.htm– http://www-106.ibm.com/developerworks/library/data-binding4/index.html

Page 19: Objetivos da Inovação do Curso

Editores

• Artigo sobre editores de XML em geral– http://www-106.ibm.com/developerworks/java/library/x-matters6.html

• Um dos melhores: XML Spy (http://www.xmlspy.com/)

• Gratuitos: http://www.garshol.priv.no/download/xmltools/

• Pode usar WordPad para textos.

• Pode usar NotePad para XML da MS.

• Software em geral: http://www.xmlsoftware.com/

Page 20: Objetivos da Inovação do Curso

DTD

• Definir as regras e o vocabulário do DTD.

• Investigar linguagens baseadas em XML mais apropriada para o projeto. Veja, por exemplo, DocBook (ML p/ documento técnico).

• Interagir com os responsáveis do HTML e do XSLT.

• Links:– http://www.oreilly.com/catalog/docbook/chapter/book/docbook.html

– http://www.oasis-open.org/docbook/intro.html

– http://zvon.org/xxl/DTDTutorial/General/book.html

– http://www.developer.ibm.com/devcon/rsinnarticle.htm

• FOP (Formatador de PDF)– http://xml.apache.org/fop/

Page 21: Objetivos da Inovação do Curso

DTD

http://www.w3.org/TR/xslthttp://www.cs.rutgers.edu/~shklar/classes/476/class21/slide5.htmlhttp://www.cs.rutgers.edu/~shklar/classes/476/schedule.html

<!ELEMENT book (author+, title, publisher)> <!ATTLIST book year CDATA> <!ELEMENT article (author+, title, year?, (shortversion|longversion))> <!ATTLIST article type CDATA> <!ELEMENT publisher (name, address)> <!ELEMENT author (firstname?, lastname)>

Page 22: Objetivos da Inovação do Curso

XML Query

• Coleções de arquivos XML podem ser acessados como Banco de Dados

• Links:– http://www.rpbourret.com/xmldbms/readme.htm

– http://www.cs.bell-labs.com/who/wadler/topics/xml.html

– http://www.w3.org/TandS/QL/QL98/pp/xql.html

– http://www.ibiblio.org/xql/

• Fazer uso inteligente da estrutura do XML.

• Site principal: http://www.w3.org/XML/Query

• Exemplo: http://www.w3.org/TR/xmlquery-use-cases

Page 23: Objetivos da Inovação do Curso

XSL - Extensible Stylesheet Language

• Linguagem para expressar padrões similar aos estilos do Word:

• É uma linguagem para transformar documentos XML.

• Contém um vocabulário para especificar formatação semântica.

• http://www.w3.org/TR/xsl/

• Introduction to Cocoon, XML, XSL– http://www.devshed.com/Client_Side/XML/INTCXX/

• Artigos:– http://www-106.ibm.com/developerworks/library/x-xslt5.html

– http://www-106.ibm.com/developerworks/library/jguru-dom/index.html

Page 24: Objetivos da Inovação do Curso

Xpath - XML Path Language

• http://www.w3.org/TR/xpath

• Excelente curso prático online para experimentar:– http://www.zvon.org/xxl/XPathTutorial/General/examples.html

Page 25: Objetivos da Inovação do Curso

Selecionando elementos com XPath

<AAA> <BBB/> <CCC/> <BBB/> <BBB/> <DDD> <BBB/> </DDD> <CCC/> </ AAA >

Selecionando /AAA

<AAA> <BBB/> < CCC /> <BBB/> <BBB/> <DDD> <BBB/> </DDD> < CCC /> </ AAA >

/AAA/CCC

<AAA> <BBB/> < CCC /> <BBB/> <BBB/> <DDD> < BBB /> </DDD> < CCC /> </ AAA >

/AAA/CCC/BBB

<xsl:template match="/"> <xsl:value-of select=“AAA”</xsl:template>

Page 26: Objetivos da Inovação do Curso

XLink

• Links– http://www.ibiblio.org/xml/books/bible/updates/16.html

– http://www.ibiblio.org/xml/books/bible/updates/17.html

– http://www.sun.com/xml/developers/xlink/

– http://www.javacommerce.com/tutorial/xml/linking.html

– http://pages.wooster.edu/ludwigj/xml/thesis.html

– http://www.thefaactory.com/xlink2html/

– http://www.diffuse.org/TopicMaps/20001025/schema.html

Page 27: Objetivos da Inovação do Curso

XSL

Veja http://www.finetuning.com/styletutorials.html

Page 28: Objetivos da Inovação do Curso

Regras xsl (1/3)

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

Page 29: Objetivos da Inovação do Curso

Regras xsl (2/3)<xsl:template match="/"> <html> <head> <title>finetuning.com - Glossary of Terms</title> </head> <body> <center><h4>Glossary</h4></center> <table width="100%" border="1"><thead> <th>Term</th> <th>Definition</th> </thead> <tbody>

<xsl:apply-templates/>

</tbody> </table> </body> </html> </xsl:template>

Page 30: Objetivos da Inovação do Curso

Regras xsl (3/3)

<xsl:template match="item"> <tr> <td><strong> <xsl:value-of select="title" /></strong></td> <td><xsl:value-of select="definition" /></td> </tr></xsl:template>

</xsl:stylesheet>

Page 31: Objetivos da Inovação do Curso

<libro>

<titulo>Dos por tres calles</titulo>

<autor>Josefa Santos</autor>

<capitulo num="1"> La primera calle

<parrafo> Era una sombría noche del mes de agosto... </parrafo>

<parrafo destacar="si"> Ella, inocente cual <enlace href="http://www.enlace.es">mariposa</enlace> que surca el cielo en busca de libaciones... </parrafo>

</capitulo>

. . . . . . . . . . . . . .........</libro>

ejemplo.xml

Page 32: Objetivos da Inovação do Curso

<?xml version="1.0" encoding="ISO-8859-1"?><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="libro"> <HTML> <HEAD> <TITLE>Ejemplos en XPath</TITLE> </HEAD> <BODY> <H1>Resultados:</H1> <PRE> <xsl:apply-templates select="/libro/capitulo/text()"/> </PRE> </BODY> </HTML> </xsl:template>

</xsl:stylesheet>

ejemplo.xsl

Page 33: Objetivos da Inovação do Curso

Teste

Execução> xsl ejemplo.xml ejemplo.xsl ejemplo.html

É preciso de:- um analisador de XSLT como Xalan- um analisador de XML como Xerces

Ambos estão no Cocoon (Apache)

Page 34: Objetivos da Inovação do Curso

Saída do exemplo no Navigator

Page 35: Objetivos da Inovação do Curso

Exemplo de arquivo XML

<?xml version="1.0"?><!-- edited with XML Spy v3.5 (http://www.xmlspy.com) by Test (Testing) --><?xml-stylesheet type="text/xsl" href="planets.xsl"?><PLANETS>

<PLANET><NAME>Mercury</NAME><MASS UNITS="(Earth = 1">.0553</MASS>

</PLANET><PLANET>

<NAME>Venus</NAME><MASS UNITS="(Earth = 1">.815</MASS>

</PLANET><PLANET>

<NAME>Earth</NAME><MASS UNITS="(Earth = 1">1</MASS>

</PLANET></PLANETS>

Page 36: Objetivos da Inovação do Curso

Cont...

<?xml version="1.0" encoding="UTF-8"?><xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">

<xsl:template match="/"><html>

<xsl:apply-templates/></html>

</xsl:template>

<xsl:template match="PLANETS"><xsl:apply-templates/>

</xsl:template>

<xsl:template match="PLANET"><p>

<xsl:value-of select="NAME"/></p>

</xsl:template></xsl:stylesheet>

Page 37: Objetivos da Inovação do Curso

Carregando o arquivo .xml no IE

Page 38: Objetivos da Inovação do Curso

XML DTDs - XML Schemas

• Permite escrever regras que definem uma estrutura de relacionamento.

• Arquivos em XML podem ser validados segundo essas regras.

• Permite construir a sua própria linguagem (vocabulário) por meio de DTD.

• DTD é essencialmente uma gramática livre de contexto (BNF) para descrever uma linguagem e o vocabulário usado numa área de aplicação.

• Para efetuar troca de dados entre instituições basta que codifique os dados conforme a DTD.

• Ex: <Course> é constituído de <Name>, <Dept> (nessa ordem).

• Ex: <html> é constituído de <head> e <body>

Page 39: Objetivos da Inovação do Curso

Atividades envolvidas

• Para construir aplicações em XML é preciso fazer 4 coisas:– Selecionar ou escrever uma DTD

– Gerar documentos em XML

– Interpretar documentos XML, e

– Exibir documentos XML.

Page 40: Objetivos da Inovação do Curso

Exemplo de DTD definindo “item”

<!ELEMENT item (prodName+,USPrice, shipDate?) <!ATTLIST item partNum CDATA> <!ELEMENT prodName (#PCDATA)> <!ELEMENT USPrice (#PCDATA)> <!ELEMENT shipDate (#PCDATA)>

Page 41: Objetivos da Inovação do Curso

XML schema definindo “item”

<xsd:element name="item"> <xsd:complexType> <xsd:sequence> <xsd:element name="prodName" type="xsd:string" maxOccurs="5"/> <xsd:element name="USPrice" type="xsd:decimal"/> <xsd:element name="shipDate" type="xsd:date" minOccurs="0"/> </xsd:sequence> <xsd:attribute name="partNum" type="SKU"/> </xsd:complexType> </xsd:element>

<!-- Stock Keeping Unit, a code for identifying products --> <xsd:simpleType name="SKU"> <xsd:restriction base="xsd:string"> <xsd:pattern value="\d{3}-[A-Z]{2}"/> </xsd:restriction> </xsd:simpleType>

Page 42: Objetivos da Inovação do Curso

XSL

• É muito mais do que um estilo (CSS).

• CSS provê um conjunto de estilos para o HTML.

• XSL uma linguagem de transformação e de formatação.

• Especifica como um documento se transforma num outro.– ordenar

– filtrar/traduzir

– montar/compor, inserir, apresentar

Page 43: Objetivos da Inovação do Curso

Conversão de dados da origem para o destino

Sem XML Com XML

Page 44: Objetivos da Inovação do Curso

Conteúdo dissociado da apresentação

Dadosxml

HTML

WML

SVG

XSLT

XSL - extensible style language

htmlXSL

wmlXSL

svgXSL

PDF

Page 45: Objetivos da Inovação do Curso

SMIL - synchronized multimedia integration language

• Pronunciação: “smile”

• Permite integrar partes de arquivos de multimídia (Áudio/Vídeo)

• Sincronizar arquivos do tipo: mp3, som, imagens, Flash, jpeg, etc.

• Links:– http://www.w3.org/AudioVideo/

– http://www.cwi.nl/~media/SMIL/

• Em Português: http://www.helio.org/products/smil/tutorial_pt/

Page 46: Objetivos da Inovação do Curso

Controlando a mídia com SMIL

<smil> <head> <layout> <root-layout width="300" height="200" background-color="white" /> <region id="vim_icon" left="75" top="50" width="32" height="32" /> </layout> </head> <body> <img src="vim32x32.gif" alt="The vim icon" region="vim_icon" dur="6s" begin="2s" /> </body></smil>

Page 47: Objetivos da Inovação do Curso

Sincronização baseada em eventos

Eventos em paralelo

Evento com tempo e duração

Inserir elemento de mídia numaapresentação especificando a região

<smil> <head> <layout> <root-layout width="300" height="200" background-color="white" /> <region id="vim_icon" left="75" top="50" width="32" height="32" /> </layout> </head> <body> <img src="vim32x32.gif" alt="The vim icon" region="vim_icon" /> </body></smil>

Page 48: Objetivos da Inovação do Curso

Linguagem SVG (W3C)

• Adobe (Plug-in) – Apache - SVGView (IBM)

• Linguagem para descrever gráficos em 2-D– Formas vetoriais gráficas;

– Imagens;

– Texto.

• E operações gráficas: animações, clipping, etc.

• Todas as facilidades providas no XML

• Suporte do World Wide Web Consortium (W3C)

• Conversões de outros formatos para SVG:– Color Graphics Metafile (CGM)

• Alternativa ao GIF/JPEG para visualização em browser.

Page 49: Objetivos da Inovação do Curso

SVG: rect

<?xml version="1.0" standalone="no"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20001102//EN“ "http://www.w3.org/TR/2000/CR-SVG-20001102/DTD/svg-20001102.dtd">

<svg width="12cm" height="4cm"> <desc>Example rect01 - rectangle expressed in physical units</desc> <rect x="4cm" y="1cm" width="4cm" height="2cm“ style="fill:yellow; stroke:navy; stroke-width:0.1cm" /> </svg>

Page 50: Objetivos da Inovação do Curso

SVG: rect

<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20001102//EN“ "http://www.w3.org/TR/2000/CR-SVG-20001102/DTD/svg-20001102.dtd"><svg width="12cm" height="4cm" viewBox="0 0 1200 400"> <desc>Example rect02 - rounded rectangles expressed in user coordinates</desc>

<rect x="1" y="1" width="1198" height="398“ style="fill:none; stroke:blue"/>

<rect x="100" y="100" width="400" height="200" rx="50“ style="fill:green;" />

<g transform="translate(700 210) rotate(-30)"> <rect x="0" y="0" width="400" height="200" rx="50“ style="fill:none; stroke:purple; stroke-width:30" /> </g></svg>

Page 51: Objetivos da Inovação do Curso

SVG: text

<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20001102//EN“ "http://www.w3.org/TR/2000/CR-SVG-20001102/DTD/svg-20001102.dtd"><svg width="10cm" height="3cm"> <desc>Example tspan01 - using tspan to change visual attributes</desc>

<g style="font-family:Verdana; font-size:12pt"> <text x="2cm" y="1.5cm" style="fill:blue"> You are <tspan style="font-weight:bold; fill:red">not</tspan> a banana. </text> </g></svg>

Page 52: Objetivos da Inovação do Curso

Recursos SVG

• http://www.mozilla.org/projects/svg/

• http://www.adobe.com/

• http://www.sun.com/software/xml/developers/svg/

• http://www.w3.org/TR/SVG/svgdtd.html

• http://home.earthlink.net/~edwardsrg/Adobe/AdobeTutorial.html

Page 53: Objetivos da Inovação do Curso

GML e outras tecnologias

Ho

Page 54: Objetivos da Inovação do Curso

Objetivo• Não se pretende convencer do uso de ferramentas ou de tecnologias

computacionais. Não é evangelização.

• Apresentar algumas tecnologias que estão em evidência.

• Levantar questões sobre novos rumos frente as tecnologias emergentes.– Tipos de dados existentes e formas alternativas de armazenar. Ex:

SpringWeb poderia ler arquivos xml, via Corba, via DB, etc.

– Tipos de aplicações que poderiam ampliar o alcance do GIS, inclusive os aparentemente impensáveis/impraticáveis.

– Integrar os componentes desenvolvidos ou a serem desenvolvidos.

• Atender as questões levantadas por Laércio, JP, etc.

Page 55: Objetivos da Inovação do Curso

Um contexto de desenvolvimento

• Ferramentas básicas– Programação Orientado a Objeto e uso de Design Patterns

– UML

• Tecnologia voltada ao domínio de trabalho.– OpenGIS: OpenGIS Corba IDL, GML

• Tecnologia de suporte– Corba, XML, EJB, BD de objetos (OODBMS), BD p/ XML

• Software de visualização– Spring, SpringWeb, SVG, browsers

Page 56: Objetivos da Inovação do Curso

Padronização

• Estabelecer/documentar/uniformizar o vocabulário (específico ao domínio) que definem elementos GIS.

• Utilizar especificações/recomendações estabelecidas por consenso por instituições: OpenGIS (Features)

• Uso de padrões (abertos) consagrados para facilitar a interoperabilidade de dados, serviços e programas.

Page 57: Objetivos da Inovação do Curso

Where Does GIS Live?

Java

UML

CORBA

XMI

Internet

SQL-2

SQL-MM

IIOP

XML

COM Objects IDL

Security

e-commerce Wide band

Wireless

Legacy

A tough neighborhood

W3C

Standards

Page 58: Objetivos da Inovação do Curso

An Infrastructure of Agreements

Wireless Global Communication

Limited Speech Recognition

Object Request Brokers

CORBA Traders

"Yellow Page" Databases

Thematic Data Providers

Map Portrayal ServersMobile

Devices

Spatial Data Manipulation Engines

Advertisement Pathways

Spatial Query Engines

Interfaces

Page 59: Objetivos da Inovação do Curso

Um exemplo de arquivo XML

<address> <name> <title>Mrs.</title> <first-name>Mary </ first-name> <last-name>McGoon </ last -name> </ name>

<street> 10 Main street </ street>

<city> Dallas </ city> ..... <zipcode>34829</zipcode></ address>

Page 60: Objetivos da Inovação do Curso

XML -eXtensible Markup Language

• Vem a ser um novo padrão de armazenamento/formatação de dados na Internet. Projetado para descrever dados resolvendo em parte a questão da interoperabilidade.

• Parecido com o HTML. Supre as deficiências do HTML como representação de conteúdo.

• Facilita a manipulação de dados dentro e fora de programas. Pode-se definir um conjunto de “tags”.

• Facilita a customização da apresentação de dados através de XSL. Alternativa e complemento para CGI, JSP, ASP, ...

• É uma especificação mais simples e concisa do SGML.

Page 61: Objetivos da Inovação do Curso

Arquivos em formato XML

• Um arquivo XML deve ser “well formed”.

• Documentos XML pode ter a sua gramática especificada e validada por Document Type Definitions (DTDs)

• XML pode ser usada de diversas maneiras– com Banco de dados (por meio de toolkits)

• Armazenar arquivos (ou os elementos do) XML no BD.

• consulta SQL sob forma de XML.

• Recuperar o ResultSet sob forma de XML.– programas: Java, C++ (por meio de API)– uso com todas as outras tecnologias: Corba, Servlet, JavaBeans (XML

integrando o processo de engenharia das aplicações)

Page 62: Objetivos da Inovação do Curso

O problema do “Best viewed with IE”

• HTML combina conteúdo e apresentação numa estrutura.

• Há problemas em estender o HTML para atender uma feature a mais.

• No HTML tolera-se códigos ruins visíveis apenas no IE.

• Extensões de tags no HTML é uma forma de entrincheirar num padrão menos geral.

• Faz-se uso de JavaScript, applets, plug-ins para dar mais vida ao HTML.

• O uso de CSS ajuda a estruturar melhor um documento HTML.

Page 63: Objetivos da Inovação do Curso

CSS - Cascading Style Sheets

H3 {font-family : Arial, Helvetica, sans-serif; color : blue; text-align : center;}

<H3>1.3 Histórico</H3><P> Este trabalho tem origem .... </P>

Page 64: Objetivos da Inovação do Curso

XML usando DOM API<?xml version="1.0"?> <numbers-to-sum> <number>20.5</number> <number>34</number> <number>16.0</number> <number>50.5</number> </numbers-to-sum>

Page 65: Objetivos da Inovação do Curso

Usando APIs: SAX e DOM

<Course><Name> Java 101 </Name><Dept> EECS </Dept>

</Course>

Page 66: Objetivos da Inovação do Curso

Informação: XML e código de aplicação

Order Customer myCustomer;Part[] myPart;<ORDER>

<CUSTOMER>Bob</CUSTOMER><PART>Anvil <QUANTITY>1</QUANTITY> <SKU>012343QASD</SKU></PART></ORDER>

Part long quantity;long sku;

XML

1..n 1..n

XML Parser

CustomerString name;

Código da aplicação

Page 67: Objetivos da Inovação do Curso

Uso do XML como formato intermediário

• Exemplo fictício de um usuário de MS Office. (devido ao fato de se ter o XML como o formato intermediário)– Usuários salvam documentos do Office em HTML.

– Modificam os documentos como HTML (máquinas sem o MSO).

– E importar de volta no MS Office

Page 68: Objetivos da Inovação do Curso

Exemplo de um módulo da Oracle

1 - Request Manager atende um usuário.2 - Request Manager envia o pedido para o Master Service.3 - Master Service invoca um adapter para recuperar um conteúdo.4 - O Adapter retorna o conteúdo sob forma de XML.5 - O Transformer converte o conteúdo XML para o formato apropriado. 6 - O Request Manager retorna a informação para o dispositivo.

Page 69: Objetivos da Inovação do Curso

Mais ferramentas Oracle

Page 70: Objetivos da Inovação do Curso

Oracle XSQL

<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="emp.xsl"?> <query connection = "demo" doc-element = "employee-list" row-element = "employee" tag-case = "lower" > SELECT * FROM EMP ORDER BY ENAME </query>

Page 71: Objetivos da Inovação do Curso

OpenGIS: Features

• "A feature is an abstraction of a real world phenomenon;”

• A representação do mundo real pode ser tratado como sendo uma coleção de features.

• O estado de uma feature é definido por um conjunto de propriedades (ou atributos): nome, tipo, valor.

• Uma feature collection pode ser por sua vez uma feature.

• Uma feature geográfica tem com uma de suas propriedades uma geometria.

• “River” feature type pode ter uma propriedade “name” do tipo “string”.

Page 72: Objetivos da Inovação do Curso

Geography Markup Language (GML)

• GML diz respeito ao “Simple Features” com propriedades geométricas restritas a “simple geometry”, e;

• Codificação baseada em XML.

• Diz respeito à descrição de estrutura e relacionamento no mundo real.

• Para visualizar:– leitura direta dos dados codificados em GML, ou

– transformar para uma codificação SVG, VML, VRML, etc.

• Para servir de dados para programas não visuais.

Page 73: Objetivos da Inovação do Curso

Exemplo: elemento de coordenadas

<decimal>::='.'<D>:=[0-9]<cs>::=","<ts>::=whitespace (see XML 1.0 [XML]<coordinate>::='-'<D>+(<decimal><D>+)?<ctuple>::=<ctuple>|<coordinate><cs><ctuple><coordinatelist>::=<coordinatelist>|<ctuple><ts><coordinatelist>

<!ELEMENT coordinates (#PCDATA) ><!ATTLIST coordinates decimal CDATA #IMPLIED cs CDATA #IMPLIED ts CDATA #IMPLIED>

<coordinates decimal="." cs="," ts="whitespace"> 1.03,2.167 4.167,2.34 4.87,3.0 1.06,2.3</coordinates>

DTD

GML

Page 74: Objetivos da Inovação do Curso

Exemplo de elementos GML

<!ELEMENT Point (coordinates) ><!ATTLIST Point ID CDATA #IMPLIED srsName CDATA #IMPLIED>

<Point srsName="EPSG:4326"> <coordinates> 56.1,0.45 </coordinates></Point>

<!ELEMENT Box (coordinates) ><!ATTLIST Box ID CDATA #IMPLIED srsName CDATA #REQUIRED>

<Box srsName="EPSG:4326"> <coordinates> 0.0,0.0 100.0,100.0 </coordinates></Box>

Ponto

Região

Page 75: Objetivos da Inovação do Curso

Elemento GeometryCollection <GeometryCollection srsName="EPSG:4326"> <geometryMember> <Point> <coordinates> 50.0,50.0 </coordinates> </Point> </geometryMember> <geometryMember> <LineString> <coordinates> 0.0, 0.0 0.0, 50.0 100.0, 50.0 100.0, 100.0 </coordinates> </LineString> </geometryMember> <geometryMember> <Polygon> <outerBoundaryIs> <LinearRing> <coordinates> 0.0,0.0 100.0,0.0 50.0,100.0 0.0,0.0 </coordinates> </LinearRing> </outerBoundaryIs> </Polygon> </geometryMember></GeometryCollection>

Page 76: Objetivos da Inovação do Curso

Exemplo de codificação da Feature “River”

<Feature typeName="River"> <name> Cam </name> <description> The river that runs through Cambridge. </description> <geometricProperty typeName="centerLineOf"> <LineString srsName="EPSG:4326"> <coordinates> 0.0,50.0 100.0,50.0 </coordinates> </LineString> </geometricProperty></Feature>

Page 77: Objetivos da Inovação do Curso

Banco de Dados RDMS

• Arquitetura dual combinando– Campos de Banco de Dados e

– Dados vetoriais/imagens em Diretórios.

• Dados em diretórios especificados por:– Clobs & blobs

– Instancias de objetos

– Estruturas oriundas de XML

Page 78: Objetivos da Inovação do Curso

Object DataBase

• JDO - Java Data Objects - alternativa para JDBC

• API: JavaBlend mapea ODMG -> JDBC

• Poet - object DB solution

• Vantagens:– Escreve menos código. Não há necessidade de escrever código chamando

SQL, ODBC, ou JDBC.

– Desempenho muito maior quando se lida com dados complexos.

– Combina com o modelo de objeto XML.

Page 79: Objetivos da Inovação do Curso

Armazenamento de dados: persistência de obj

Page 80: Objetivos da Inovação do Curso

Opções de armazenamento/persistência

• BLOBS (e XML) no RDBMS

• Serialização Java

• JDO - BD de objetos Java

• Entity Beans no EJB

Page 81: Objetivos da Inovação do Curso

Middle Tiers - Middlewares (infra-estruturas de comunicação)

• Corba

• Enterprise JavaBeans

• Servlets, JSP

• Atendem a serviços num servidor (ou ambiente)

• Os serviços têm interfaces (“bem”) conhecidas

• Atuam como meio (substrato) para chamadas e transferências de dados.