Você está na página 1de 8

Estudo comparativo de diferentes linguagens de interfaces baseadas em XML

Ricardo Alexandre G. C. Martins, Jos Carlos Ramalho, and Pedro Rangel e Henriques
\{ram,jcr,prh\}@di.uminho.pt Departamento de Informtica Universidade do Minho a

Resumo A alguns anos, houve um grande esforo por parte do meio c acadmico e industrial para padronizar a representao de diferentes tie ca pos de dados, de forma a facilitar a interoperabilidade de aplicaes. co Desse esforo surgiu o XML, e com ele foi poss representar dados de c vel uma maneira estruturada e, com isso, obter diferentes resultados vindos de uma mesma fonte de dados. Atualmente, o desao estabelecer uma forma unica de representar a e interface dos dados, de forma que a programao de uma interface para ca um web site seja igual a interface de um software convencional. No momento, existem algumas propostas de linguagens baseadas em XML que visam solucionar este tipo de problema, de modo que um software completo possa ser gerado dinamicamente. Este artigo apresenta uma comparao entre trs diferentes linguagens para denio de inca e ca terfaces, a saber: XUL, UIML e MXML. Sero analisadas as vantagens a e desvantagens de cada linguagem atravs de diferentes parmetros de e a comparao, de modo a determinar a linguagem que oferece mais recurca sos para o utilizador.

Introduo ca

Durante os ultimos cinco anos, temos visto um grande avano no intercmbio de c a informaes e documentos entre aplicaes. Devido a iniciativas para o estabeco co lecimento de padres, e suas respectivas utilizaes por parte dos fabricantes de o co software, hoje dispomos de uma grande variedade de opes para trocar inforco maes entre programas, servidores e o que mais precisar. co Entretanto, a situao era semelhante ao que aconteceu aos PCs duas dcadas ca e atrs: vrios tipos de hardware foram desenvolvidos, e cada um com sua pra a o pria application programming interface (API). Com isso, surgiu um problema: os desenvolvedores de software no poderiam suportar novo hardware automaa ticamente assim que novos dispositivos entrassem no mercado. Porm, aps o estabelecimento do XML [5] como padro pelo W3C (World e o a Wide Web Consortium), surgiram novas tecnologias baseadas nesse padro que a facilitam a converso de formatos de dados, como o XSL, a representao gra ca a ca em imagens (SVG [6]) e alguns outros que facilitam a comunicao entre ca aplicaes, como os Web Services [7]. co

236

Ricardo Alexandre et al.

Com todas essas tecnologias ` disposio dos utilizadores, o novo desao que a ca se surge desenvolver uma maneira unica para representar as informaes, seja e co em software tradicional, web ou qualquer outro meio. Atualmente existem algumas linguagens baseadas em XML que se propoem a servir como uma forma cannica de programao, de modo que um mesmo o ca arquivo contendo o cdigo-fonte, represente simultaneamente a interface de dados o para um software e a interface para um website. Este artigo tem como objetivo estudar trs propostas de linguagens de ese pecicao de interfaces, de modo a determinar quais so as linguagens mais ca a apropriadas em determinadas situaes, assim como as mais simples de serem co implementadas e as mais levesem processamento. Na seo 2 sero apresentadas as linguagens de especicao de interfaces, ca a ca assim como alguns exemplos de sua programao. Na seo 3 sero apresentados ca ca a os parmetros de comparaao e os resultados das anlises realizadas e por m, a c a na seo 4, ser apresentada a concluso do estudo. ca a a

Linguagens

Quando falamos de linguagens de interface, devemos ter em mente que uma das principais vantagens dessas linguagens sobre outras existentes com relao a e ca portabilidade. Muitas aplicaes necessitam serem desenvolvidas utilizando caracter co sticas de uma plataforma espec ca, o que torna a construo de software cross-platform ca caro e lento. No momento isto pode no ser importante, mas os utilizadores poa dem querer utilizar uma aplicao em outro dispositivo como um PDA. ca Uma vez que as linguagens de interface funcionam sob um interpretador (similarmente a Java, onde uma mquina virtual interpreta o programa), diferentes a dispositivos e sistemas podem tirar proveito de um mesmo arquivo, e com isso garantimos que o desenvolvimento de uma interface torna-se idependente de hardware ou software. PDAs, computadores portteis, PCs possuem a capacidade a de interpretar as interfaces, necessitando apenas a presena do interpretador ou c mquina virtualcorrespondente. a 2.1 XUL

XUL [2] uma tecnologia baseada no padro XML para expressar a parte intere a face de um software. Ela foi desenvolvida para expressar interfaces para diversas aplicaes como navegadores web, clientes de e-mail, calendrios, calculadoras, co a editores HTML, debuggers e qualquer ambiente desktop. Toda a implementao ca das caracter sticas da XUL esto contidas dentro da plataforma Mozilla, que so a a o motor executvel e as bibliotecas que acompanham todo produto baseado no a Mozilla. Devido a isso qualquer documento XUL ser exibido corretamente nos a sistemas Microsoft Windows, Macintosh e Linux. A XUL foi desenvolvida pela Netscape e agora tem sua continuidade garantida pela Mozilla Foundation. Apesar de utilizar alguns padres do World Wide o

XATA 2004 Estudo comp. de dif. ling. de interfaces baseadas em XML

237

Web Consortium (W3C) em seu design, a XUL no um padro ocial. Ena e a tretanto, todos os documentos XUL so documentos XML vlidos e suportam a a XML Namespaces, DTDs, CSSs assim como JavaScript. Assim como os documentos HTML, os documentos XUL podem ser copiados pela internet e exibidos ou instalados localmente se necessrio. a Elementos suportados A XUL, como uma linguagem de programao de inca terfaces, suporta (e fornece) a programao de alguns elementos e seus atributos ca de interfaces visuais. So eles: a elementos simples - janelas, botes, labels, imagens, controles de entrada, o controles de listas; elementos comuns - barras de progresso, scroll bars, pilhas e cartes, posicio onamento de pilha, tabboxes, barras de ferramentas, painis e splitters; e caixas - modelos, posicionamento, detalhes, grupos e adio de mais elemenca tos; menus - barras de menus simples, caracter sticas, menus popup e menus deslizantes; tabelas, rvores e RDF - caracter a sticas dos listboxes, rvores, caracter a sticas das rvores, templates e fontes de dados RDF; a eventos e scripts - event handlers, DOM, atalhos de teclado, seleo e focus, ca seleo de rvores e customizao de visualizao de rvores; ca a ca ca a Cross-platform Component Object Model(XPCOM) - interfaces XPCOM, manipulao de fontes de dados RDF e drag and drop; ca skins e localizaes - adio de stylesheets, denio de estilos, criao de co ca ca ca skins e localizao de arquivos; ca bindings - adio de propriedades, mtodos e event handlers; ca e Codicao A codicao de um documento XUL bastante simples, pareca ca e cendo bastante com um documento HTML. Sua sintaxe baseada na utilizao e ca de etiquetas (tags) que permitem especicar a semntica e o valor do elemento. a Um exemplo de um documento XUL pode ser visto conforme abaixo: <?xml version="1.0"?> <?xml-stylesheet href="chrome://global/skin/" type="text/css"?> <window id="example-window" title="Example 8.2.1" xmlns:html="http://www.w3.org/1999/xhtml" xmlns="http://www.mozilla.org/key...ekeeper/there.is.only.xul"> <toolbox> <menubar id="windowlist-menubar"> <menu label="Window"> <menupopup id="window-menu" datasources="rdf:window-mediator"> <template>

238

Ricardo Alexandre et al.

<rule> <menuitem uri="rdf:*" label="rdf:http://home.netscape.com/NC-rdf#Name"/> </rule> </template> </menupopup> </menu> </menubar> </toolbox> </window>

2.2

UIML

Confome [3], a UIML uma meta-linguagem derivada do XML para descrio e ca de interfaces de utilizadores. O objetivo principal dessa linguagem servir como e linguagem de programao para diferentes dispositivos, de modo que um unico ca documento possa ser lido em qualquer hardware. Por se tratar de um documento baseado em XML, poss a transformao e vel ca para outras linguagens atravs da aplicao de stylesheets. Para a visualizao da e ca ca interface, necessrio a utilizao de um renderer espec e a ca co para cada sistema operativo e tipo de interface (HTML, WAP, Java, etc) e tambm necessrio o e e a desenvolvimento em separado da interface para cada dispositivo. Em UIML, uma interface de utilizador um conjunto de elementos de ine terface com o qual o utilizador interage. Esses elementos podem ser organizados diferentemente para diferentes categorias de utilizadores e aplicaes. Cada eleco mento de interface possui dados (por exemplo, texto, sons, imagens) que so a utilizados para realizar a comunicao com o utilizador e tambm podem receca e ber informaes sobre as interaes do utilizador em runtime. co co Codicao ca <?xml version="1.0"?> <!DOCTYPE uiml PUBLIC "-//Harmonia//DTD UIML 3.0 Draft//EN" "http://uiml.org/dtds/UIML3_0a.dtd"> <uiml> <interface> <structure> <part id="TopHello"> <part id="hello" class="helloC"/> </part> </structure> <style>

XATA 2004 Estudo comp. de dif. ling. de interfaces baseadas em XML

239

<property part-name="TopHello" name="rendering"> Container </property> <property part-name="TopHello" name="content"> Hello </property> <property part-class="helloC" name="rendering"> String </property> <property part-name="hello" name="content"> Hello World! </property> </style> </interface> <peers> ... </peers> </uiml>

2.3

MXML

O MXML [1] uma linguagem de programao baseada no padro XML dee ca a senvolvida pela Macromedia para servir como linguagem de programao de ca interfaces para seu novo servidor de aplicaes, batizado Flex [4] (atualmente co em fase de beta teste), que funciona sob um servidor de aplicaes J2EE, como co Macromedia JRun, IBM Websphere, BEA WebLogic ou Apache Tomcat. Com o MXML, poss e vel declarar o layout de uma interface de uma maneira mais estruturada e menos amb gua que o HTML. Alm disso, o MXML e inclui um conjunto de tags espec cas diferentes do HTML, como DataGrid, Tree, TabNavigator, Accordion, e Menu e tambm a possibilidade da criao de e ca novos componentes. Entretanto, a diferena mais signicativa do MXML para o c HTML que as interfaces so renderizadas pelo Flash Player, o que fornece aos e a utilizadores mais possibilidades do que o HTML. Para a programao de respostas a eventos do utilizador, poss a criao ca e vel ca de funes utilizando ActionScript, que uma linguagem baseada no padro co e a ECMA-262.

Tecnologias suportadas O Macromedia Flex foi desenvolvido para suportar diferentes tecnologias para a adio de funcionalidades. De acordo com o objetivo ca pretendido, poss utilizar tecnologias diferentes para enriquecer o contedo e vel u de um documento MXML. As nalidades e as tecnologias so as seguintes: a Acesso a dados - utilizao de Webservices; ca Design - utilizao de Cacade Style Sheets (CSS); ca

240

Ricardo Alexandre et al.

Codicao A codicao de um documento MXML bastante simples, pareca ca e cendo bastante com um documento HTML. Sua sintaxe baseada na utilizao e ca de etiquetas (tags) que permitem especicar a semntica e o valor do elemento. a Um exemplo de um documento MXML pode ser visto conforme abaixo: <?xml version="1.0" encoding="iso-8859-1"?> <mx:Application xmlns:mx="http://www.macromedia.com/2003/mxml"> <mx:script> function copy() { destination.text=source.text } </mx:script> <mx:TextInput id="source" width="100"/> <mx:Button label="Copy" click="copy()"/> <mx:TextInput id="destination" width="100"/> </mx:Application>

3
3.1

Estudos comparativos
Parmetros de comparao a ca

Para estabelecer as vantagens e desvantagens de uma linguagem perante a outra, foram estabelecidos alguns parmetros de comparao, a saber: a ca 3.2 Facilidade de programao; ca Extensibilidade; Tempo de Resposta; Portabilidade; Integrao com outras tecnologias; ca Acesso a dados remotos. Resultados

1. Facilidade de programao - devido ao fato de que todas as linguagens ca so baseadas no formato XML, a programao dos documentos nas difea ca rentes linguagens um trabalho bastante simples, podendo ser facilmente e substitu por um editor; do 2. Extensibilidade - a capacidade de criar novos componentes necessrios no e a desenvolvimento da interface. As linguagens XUL e MXML fornecem suporte a ` extensibilidade atravs da capacidade de criao de novos elementos; e ca 3. Tempo de Resposta - em todos os casos o tempo de resposta para a execuo das interfaces foi baixo; ca

XATA 2004 Estudo comp. de dif. ling. de interfaces baseadas em XML

241

4. Portabilidade - a capacidade de um documento poder ser executado e em diferentes sistemas operativos. Para a linguagem XUL basta a utilizao ca do motor Gecko, dispon vel para os sistemas operativos Linux, Windows e Machintosh. Para executar documentos UIML necessrio a instalao e a ca de um renderer espec co para cada formato de sa (software tradicional, da web, wap, etc). Os documentos MXML necessitam apenas o Flash Player instalado, o que os tornam acess veis em qualquer sistema operativo atual ; 5. Integrao com outras tecnologias - em todas as linguagens existe suca porte a CSS e linguagens de script para o tratamento de eventos realizados pelo utilizador; 6. Acesso a dados remotos - de todos os casos, somente o MXML possui suporte nativo a acesso de dados remotos, atravs de Webservices; e

Parmetros de comparao a ca XUL UIML MXML Facilidade de programao ca alta alta alta Extensibilidade sim no a sim Tempo de Resposta baixo baixo baixo Portabilidade alta mdia e alta Integrao com outras tecnologias sim ca sim sim Acesso a dados remotos no a no a sim Tabela 1. Tabela de comparao das linguagens ca

Concluso a

As linguagens de interface um exemplo de tecnologia que visa estabelecer um e formato unico para descrever uma sitaxe de programao para diferentes tipos ca de hardware e software. Devido `s diferentes caracter a sticas de hardware e software existentes entre os dispositivos, as diferentes linguagens existentes direcionam-se para diferentes pblicos, embora todas tenham o mesmo objetivo nal: servir como uma base u cannica para a programaao de interfaces. o c Das linguagens estudadas, pode-se dizer que a linguagem UIML encontra-se em um inferior `s demais estudadas, pois as demais tecnologias possuem a vel a capacidade de criar novos componentes e uma melhor portabilidade, pois apenas necessitam de um unico software para executar seus respectivos documentos para os mais diferentes tipos de interface (web, wap, software tradicional, etc). Diferentemente da demais tecnologias estudadas, o MXML apresenta-se como uma grande aposta da Macromedia para uma completa integrao de dados, ca conseguindo trabalhar de maneira eciente tanto o contedo (atravs do acesso u e

242

Ricardo Alexandre et al.

a dados remotos por Webservices) quanto a parte visual (utilizao de CSS, ca ActionScript e Flash).

Referncias e
1. Christophe Coenraets. An overview of mxml, the macromedia ex markup language. http://www.macromedia.com/devnet/ex/articles/paradigm.html/. 2. Neil Deakin. Xul tutorial. http://www.xulplanet.com/tutorials/xultu/, Fevereiro, 2004. 3. Harmonia. Tutorial booklet. http://www.uiml.org/tutorials/uiml1/uiml v10 tutorial.pdf/, Dezembro, 1997. 4. Macromedia. Macromedia ex: the presentation tier slution for enterprise rich internet applications. http://www.macromedia.com/software/ex/whitepapers/pdf/ex tech wp.pdf/, Novembro, 2003. 5. W3C. Extensible markup language (xml). http://www.w3.org/XML/. 6. W3C. Scalable vector graphics (svg) 1.1 specication. http://www.w3.org/TR/SVG11/, Janeiro, 16, 2003. 7. W3C. Web services architecture requirements. http://www.w3.org/TR/wsareqs, Novembro, 14, 2002.

Você também pode gostar