Home
GABRIELUS: PROTÓTIPO DE UM EDITOR DE
Contents
1. 4 3 Tomcat O Tomcat um servidor de aplica es Java para Web software livre e de c digo aberto surgido dentro do conceituado projeto Apache Jakarta e oficialmente endossado pela Sun como a Implementa o de Refer ncia RI para as tecnologias Java Servlet e JavaServer Pages JSP Atualmente o Tomcat tem seu pr prio projeto dentro da Apache Software Foundation O Tomcat robusto e eficiente o suficiente para ser utilizado mesmo em um ambiente de produ o Tecnicamente o Tomcat um container Web parte da plataforma corporativa Java Enterprise Edition J2EE ou Java EE que abrange as tecnologias Servlet e JSP incluindo tecnologias de apoio relacionadas como Realms e seguran a JNDI Resources e JDBC DataSources para maiores informa es visite o site do Tomcat O Tomcat tem a capacidade de atuar tamb m como servidor web HTTP ou pode funcionar integrado a um servidor web dedicado como o Apache httpd ou o Microsoft IIS 27 Site do Apache Jakarta http jakarta apache org 28 Site da Sun http www sun com 29 Site do Java Servlet http java sun com products servlet 30 Site do JavaServer Pages http java sun com products jsp 31 Site do Apache Software Foundation http www apache org 32 Site do Java Enterprise Edition http java sun com javaee 33 Site do Tomcat http tomcat apache org 34 Site do Apache httpd http httpd apache org 35 Site do Microsoft IIS http
2. gt gt ahs DataFlowEditorversion br com viniciusmayer gabrielus framework d r geo y y MIC 2 7 1 S lt lt package gt gt 57508 Cy br com viniciusmayer gabrielus threads Ema LJ lt package gt i Cy br com viniciusmayer gabrielus protocol 1 internationalization properties gt c DataFlowEditorStrings of M y i LJ licence document gt lt lt image gt gt C4 lt lt package gt gt EJ librarie gt licence txt 9abrielus png br com viniciusmayer gabrielus animation gt TE timingframework jar Diagrama 01 Diagrama de Componentes representando o conjunto de componentes e respectivas depend ncias para o Gabrielus No diagrama apresentado acima est o sendo exibidas as depend ncias que existem entre os componentes do Gabrielus e claro quais as partes componentes que comp e o Gabrielus Poder amos iniciar uma an lise deste diagrama a partir do pacote em ingl s package br com viniciusmayer gabrielus editor respons vel pela constru o do aplicativo em si Este pacote tem depend ncia de dois arquivos de propriedades de dois outros pacotes World Wide Web 14 br com viniciusmayer gabrielus framework br com viniciusmayer gabrielus diagram e do framework violet jar Estaremos no entanto primeiramente apresentando os frameworks que est o presentes no nosso aplicativo e em seguida uma an lise dos pacote
3. echo Por favor aguarde svn update home viniciusmayer projects gabrielus echo mw echo A o svn update gabrielus realizada com sucesso echo mw faqui os demais processamentos programados echo echo Update do projeto gabrielus concluida com sucesso echo mw rr faro echo Cancelando update do projeto gabrielus echo A o update gabrielus cancelada com sucesso echo rr esac No fragmento de script que apresentamos acima estamos trabalhando apenas com o procedimento de carga das ltimas vers es dos c digos fonte do projeto no Java Net Observe que tal a o se d pela ativa o do comando svn update na pasta que mant m a c pia local dos fontes do projeto que estamos trabalhando Alertamos apenas para o fato de que o script n o trata necessariamente as exce es que podem por ventura acontecer Por exemplo poderiamos enfrentar algum tipo de conflito de vers es entre algum arquivo de c digo fonte do projeto na m quina com um arquivo de c digo fonte no servidor subversion e a nica a o que teriamos por parte deste script e a exibi o dos resultados do processamento feito Logo qualquer evento que fuja a um 55 ambiente ideial ter de ser tratado manualmente 4 5 4 Configura o do Tomcat Consideremos agora nosso ambiente no servidor Web que ir disponibilizar a nossa aplica o Para o Gabrielus estaremos utilizando como servidor Web o
4. o deployment padr o para todas as aplica es web O Tomcat processa este arquivo antes de processar os arquivos web xm1 das aplica es web sendo instaladas logs O diret rio logs o local padr o para os arquivos de logs server O diret rio server cont m tr s subdiret rios classes lib webapps Estes diret rios s o acess veis apenas ao Tomcat ou seja classes colocadas no diret rio classes do diret rio server n o estar o acess veis a outras aplica es web O diret rio webapps o local reservado para as aplica es de gerenciamento do Tomcat admin e manager shared Este diret rio cont m dois subdiret rios classes e 1ib Classes nestes subdiret rios estar o dispon veis a todas as aplica es web exceto ao Tomcat Classes compiladas devem ser colocadas no diret rio classes e arquivos JAR no diret rio 1ib webapps Diret rio padr o para a instala o de aplica es web no Tomcat work Este diret rio onde o Tomcat coloca o c digo da p gina JSP depois que este convertido em um Servlet Uma vez que uma p gina JSP visitada pela primeira vez o Tomcat armazenar o c digo compilado neste diret rio tamb m 4 4 Java Web Start Java Web Start uma nova tecnologia para deployment de aplica es Java Ela nos permite executar aplica es com um simples clique em uma p gina Web O usu rio pode baixar e executar aplica es sem passar por procedimentos complicados de insta
5. Direction Point2D Ea Ey 3 writeObject out ObjectOutputStream void writeRectanqularShape out ObjectOutputstream s RectangularShape void ectangie readObject n Objectinputstream void readRectangularShapetin ObjectinputStream s RectangularShape void getShaped Shape Diagrama 04 Diagrama de Classes detalhado do pacote viniciusmayer gabrielus framework Perceba que no diagrama de classe detalhado que disponibilizamos logo acima as classes que comp e o nosso pacote framework est o associadas com diversas classes externas ao nosso pr prio pacote Estas classes s o providas por um dos frameworks que estamos utilizando na arquitetura do Gabrielus e para o pacote framework s o classes exclusivamente disponibilizadas pelo framework violet jar Classes como PersistenceDelegate JDesktopPane RectangularNode e as demais que aparecem no diagrama com exce o das que comp e o pr prio pacote s o vindas do framework violet jar E claro portanto que imprescind vel que este framework esteja dispon vel e em pleno funcionamento 26 3 2 3 Diagram O pacote br com viniciusmayer gabrielus diagram o respons vel pela montagem do editor de diagramas dataflow ele que disp e os objetos dispon veis para um diagrama dataflow na barra de objetos mantem os listeners do panel onde estar o sendo desenhados literalmente os diagramas assim como tamb m o
6. e Um target uma cole o de tarefas que desejamos aplicar em determinado momento e encadeando junto com outras tarefas e Um task uma tarefa que desejamos que seja feita dentro do target o Ant j disponibiliza tarefas prontas como lt property name build value bin gt Para acessar o valor da property que foi criada lt echo gt Compilando classer para o diret rio S build lt echo gt Isto faz o ant procurar o build no diret rio base e executa alvo default ant 39 XML eXtensible Markup Language uma recomenda o da W3C para gerar linguagens de marca o para necessidades especiais XML um subtipo de SGML Standard Generalized Markup Language Linguagem Padronizada de Marca o Generica capaz de descrever diversos tipos de dados Seu prop sito principal a facilidade de compartilhamento de informa es atrav s da Internet 52 Executa o alvo default de arquivo xml ant buildfile arquivo xml Roda o alvo desejado e depend ncias relacionadas ant nome do alvo Segue em seguida um exemplo de configura o do arquivos build xml do nosso projeto lt xml version 1 0 9 gt lt project name Gabrielus default compile gt lt target name clean description remove arquivos intermediarios gt 5 lt target gt lt target name compile description compila o c digo fo
7. na classe TThread Uma vez que a classe TThread abstrata a implementa o do m todo run herdado da classe Thread ficar para as suas subclasses e tamb m a implementa o dos m todos definidos pela interface PRequest 34 viniciusmayer gabrielus threads TPreRequest TRequest TPreRequest s String t DataFlowToken PResponse preRequest boolean obj String TRequest s String t DataFlowToken PResponse gt practi booki preRequestQ boolean requestQ boolean requestQ boolean transferQ boolean getResult boolean transferQ boolean 0 setResult b boolean void N VA TTransfer TDataFlow TTransfer s String t DataFlowToken PResponse TDataFlow s String t DataFlowToken PResponse preRequest boolean preRequestQ boolean requestQ boolean requestQ boolean transfer boolean transferQ boolean Q Diagrama 13 Diagrama de Classes de vis o panor mica do pacote br com viniciusmayer gabrielus tthread A classe TDataFlow primeiramente subclasse de TThread e deve necessariamente implementar os m todos run herdado de Thread por TThread e preRequest request e transfer herdados por interface de PRequest por TThread Esta classe implementa portanto todo o processo de fluxo de dados que estar acontecendo de Reposit rios para Reposit rios Reposit rios para Portas de
8. 2 1 aa i ISPs s o dispostos no serviet 1 2 conteiner arquivo JAR Lt lt lt script shell gt gt disposto conforme ES eebu tooss sas RS T O o ARA E deployment sh configurac o do Java Web Start a lt lt java web start gt lt lt serdet container gt gt gabrielus jnlo EJ apache tomcat 1 Torna poss vel Disponibiliza o site do projeto e a aplica o na disponibiliza o da aplica o a partir do A site do projeto http gentoo unijui tche br mayer gabrielus Diagrama 16 Diagrama de Componentes representando o conjunto de componentes e respectivas depend ncias para o Gabrielus No diagrama de componentes que apresentamos acima est o representados os servicos aos quais nos referimos anteriormente e as depend ncias que existem entre eles O processo todo iniciado pelo Script Shell que elaboramos Sendo que o objetivo principal do servidor gentoo unijui tche br n o necessariamente a disponibiliza o do site em si e sim do aplicativo consideramos que h dois momentos distintos ao estarmos trabalhando com este Num primeiro momento estariamos atualizando o aplicativo e num segundo momento disponibilizando esta nova vers o do Gabrielus Com o cliente subversion obteriamos as ltimas vers es dos fontes do Gabrielus no Java Net o Apache Ant faria a compila o e disposi o dos arquivos Java relacionados ao p
9. 3 Ambiente Desktops ose Lc s tuae te Mo a LA O Ee Gs 13 S D Brame o dea ac dut eta reed pe Cas aA ak de d nd a 15 ratae eu capti uo dua EUR qd 16 Timming Brame Or co cca o Gy ee te oL e b o eR in ee Sahat acetates 17 QUA du p MEE TRE 19 O PR RO NAO RAE RESP EN 20 3 2 2 di paco a vetet dana os ud 23 STA PAN pao ETT It ILE tS 27 3 244 FO e el 28 ID IDITHOTIOT A ERRA RR E SRD diag ERRA RD RR RUDE E eq RR cs 30 IR A E 32 SIN Mr 32 3 28 VEC na e 34 4 Ambiente ra AA 38 SUBEN Ga dde d bea ar oa a 41 A 42 AS WO TIN Cale O a 44 44 Java Web A de eta tee e eds UNA dade AAA 46 AS SerVIdOt A d 47 4 5 1 Configura o do SUDESTE 49 4 5 1 B sico de trabalho etos eset 50 AS 2 COMB A O c o dU 51 453 Configura o do Script Shell ii tn etre ede e e A 54 4 5 4 Configura o do ag 56 E ET DER RNA ERRAR o C RR 60 qo Is BE DIC LESS Caia DO a du Pe cb eo EE la dE reto 61 LN CHEN CS o wc mc 62 4 6 3 Framework Nitty Corners GUB eerte ot eee pedet Ia 6
10. se mal configurada esta camada no que dir respeito a um tipo de objeto em espec fico de termos as tr s partes que comp e no final um objeto do diagrama separadas e nenhuma delas com uma funcionalidade que seja de alguma forma til 27 ES NODE oves LL gridx double J double DataFlowGrido setGrid x double double void draw g2 Graphics2D bounds Rectangle2D void draw g2 Graphics2D bounds Polygon void snap p Point2D void snap r Rectangle2D void snap r Polygon void DataFlowDiagramGraph connect e Edge p1 Point2D p2 Point2D boolean getNodePrototypesQ Nodel getEdgePrototypesO Edgel PropertyDescriptor ES descripy rs SimpleBeaninfo AAA 3 M WV SegmentedLineEdge EE 0 AN BentStyle bentStyle DataFlowRelationshipEdge DataFlowNodeBeaninfo DataFlowRelationshipEdgeBeaninfo DataFlowRelationshipEdgeQ setBentSte newvalue BentStyle void getBentStyleQ BentStye getPointsQ ArrayList getPropertyDescriptorsQ PropertyDescriptor getPropertyDescriptorsQ PropertyDescriptor Diagrama 06 Diagrama de Classes detalhado do pacote br com viniciusmayer gabrielus diagram O pacote diagram est relacionado com pacote br com viniciusmayer gabrielus form e tamb m
11. Gabrielus gabrielus dev java net Mant m o reposit rio LJ lt lt version control system gt centralizado e o controle subversion server verionamento dos fontes do projeto EA gentoo unijui tche br localhost Faz CJ lt lt version control system gt download upload dos subversion client admin version control system gt fontes Subversion client developer criados atualizados do ejou para o subversion server L build tool gt LJ lt lt script shell gt um apache ant deployment sh CJ lt lt serdet container gt O lt lt web start gt apache tomcat gabrielus jnlp do projeto lt lt ide gt gt Ferramenta grafica netbeans para cria o e manuten o dos fontes Diagrama 15 Diagrama de Implanta o do Gabrielus representa a configura o e a arquitetura do site do projeto cujas liga es entre os respectivos componentes representada Temos ent o tr s cen rios distintos o primeiro se refere ao ambiente que nos disponibilizados pelo Java Net que o servidor Subversion gabrielus dev java net segundo o servidor onde estamos hospedando o site do Gabrielus gentoo unijui tche br e terceiro a Protocolo de Controle de Transmiss o e o IP Internet Protocol Protocolo Internet Esses dois protocolos foram os primeiros a serem definidos 39 uma m quina local
12. Jakarta Tomcat mas vale lembrar que o Java Web Start funciona com qualquer servidor Web Para o Java Web Start funcionar devemos e no arquivo web xml que se encontra dentro da pasta conf do nosso servidor verificar a exist ncia do MIME TYPE JNLP caso o servidor n o possua esse MIME TYPE devemos adicionar as seguintes linhas lt mime mapping gt lt extension gt jnlp lt extension gt lt mime type gt application x java jnlp file lt mim type gt lt mime mapping gt e no arquivo server xml que tamb m se encontra dentra da pasta conf do nosso servidor devemos adicionar um novo contexto para a nossa aplica o Inclua entre a tag Host as seguintes linhas lt Context path gabrielus docBase gabrielus debug 0 reloadable true e devemos criar tamb m dentro da pasta webapps do nosso servidor a pasta da nossa aplica o que neste caso ir se chamar gabrielus Ap s criar esta pasta podemos copiar o arquivos JAR gerado anteriormente para dentro desta pasta 4 5 5 Configura o do Java Web Start O Java Network Lauching Protocol JNLP descreve como nossa aplica o ser executada Ela nada mais do que um arquivo XML com a extens o jnlp Apesar de ser um arquivo XML 56 imprescind vel que a extens o seja jnlp Abaixo o arquivo JNLP do Gabrielus lt xml version 1 0 encoding utf 8 jnlp spec 1 0 codebase http gentoo unijui tche br may
13. a primeira vez que a aplica o esteja sendo executada o Java Web Start detectou que nenhuma vers o da aplica o ou at mesmo da Java Runtime Environment JRE est o presentes na m quina do cliente neste caso ele ir primeiro fazer o download da JRE e depois da aplica o Java Caso j exista uma vers o da aplica o instalada no cliente e o Java Web Start identifique que houve alguma altera o da aplica o no servidor imediatamente inicial o processo de atualiza o da vers o mais recente da aplica o Ap s todo o processo de verifica o e atualiza o a aplica o iniciada e o usu rio j pode utiliz la 4 5 Servidor 36 Site do Java Web Start http java sun com products javawebstart index jsp 37 Downloado do Java Runtime Environment http www java com en download manual jsp 47 O servidor Web com o nome gentoo unijui tche br que estamos hospedando o site do projeto e conforme j dito anteriormente tamb m neste servidor que implementamos os principais servicos de disponiliza o do Gabrielus Tanto que neste capitulo e antes desta se o fizemos uma breve apresenta o deste servi os que utilizamos e agora apresentamos a configura o realizada em cada um deste servi os Compila os fontes e DA lt lt version control system gt gt Faz a atualiza o dos disponibiliza o arquivo subversion client admin fontes JAR da aplica o L pt S T 2
14. at least are not in a hurry to do so Let s just say that there are these moving particles or tokens that can be temporarily held by and at some future point in time released from containers provided that there is a path that gets them there and another that takes them away For the sake of simplicity we will admit that there are two kinds of tokens which will be represented by different colors Figura 07 Site na vers o completa CSS JavaScript e Framework habilitados Estas op es foram criadas para que se pudesse observar no pr prio site o qu o modular e o qu o plug veis s o as tecnologias utilizadas para a constru o do mesmo Na vers o m nima mostra se o que de fato o site O conte do no sentido do texto n o se altera em nenhuma vers o e mesmo na vers o m nima do site continuam sendo disponibilizadas as principais funcionalidades do site que s o propriamente dito o conte do textos acesso aos documentos disponibilizados vale lembrar da pr pria navegabilidade do site e o mais importante o acesso a aplica o Gabrielus via o link para o Java Web Start da mesma Na vers o padr o faz se apenas a importa o dos arquivos de folha de estilo CSS S o ent o dadas as propriedades padr es para todo o site Cor de fundo preta conteiners de cabe alho e rodap azul a o de fundo verde para a ativa o de um link nestes conteiners e o conteiner principal do site onde ser
15. bastava dominar uma nica tecnologia e linguagem de programa o Surgiu ent o o conceito de aplica o para web em ingl s web application A constru o de uma aplica o para web um processo diferente do usado no desenvolvimento de aplica es tradicionais Nestas analistas e programadores t m sua disposi o uma biblioteca de classes no paradigma orientado a objeto que devem ser usadas para compor uma aplica o que seja execut vel Cabe a eles tomar todas as decis es sobre como estruturar a nova aplica o sua arquitetura componentes etc J para o desenvolvimento de aplica es para web surge a figura do web designer que exerce uma fun o espec fica projetar o web site Analistas e programadores por sua vez partem de um contexto previamente definido o sistema ser distribu do normalmente usando o modelo cliente servidor HTTP ser o protocolo de comunica o entre as aplica es programa cliente e programa servidor TCP IP ser o protocolo de transporte de dados pela rede etc Al m disso em 20 Para que um utilizador possa navegar na internet transferir ficheiros enviar receber correio eletr nico ou utilizar qualquer outro tipo de servi os da internet necessita antes de mais de estabelecer uma liga o com um computador remoto que lhe forne a estes servi os Neste cen rio o computador do utilizador o cliente o computador ao qual ele se conecta o servidor ou presta
16. bye ResourceBundle E Resource LL itorReso JitorResources versionResources DataFlowClock DataFlowEditorFrame appClass Class changeLookAndFeel lafName String void addGraphType resourceName String graphClass Class void time byte slice long DataFlowClockQ setTime b byte void getTimeQ byte readArgs args String void open name String void addinternalFrame iframe JinternalFrame void setTitleQ void addRecentFile newFile String void buildRecentFilesMenuQ void openFileQ void saved void saveAs void exportimaged void print void read in InputStream Graph saveFile graph Graph out OutputStream void savelmage graph Graph out OutputStream format String void ExtensionFilter EFE L por Fiter violetFilter setsliced long void getSliced long lookUpClockd byte rund void showAboutDialog void exit void savePreferencesQ void RectangularNode cloned Object translate dx double dy double void contains p Point2D boolean getBoundsQ Rectangle2D setBounds newBounds Rectangle2D void staticFieldDelegate PersierenceDeleqst layout g Graph g2 Graphics2D Grid void ResourceFactory getConnectionPoint d
17. com o framework violet jar O pacote br com viniciusmayer gabrielus form nos tr s as funcionalidades voltadas ao que diz respeito unicamente a representa o visual de um objeto E o framework violet jar neste caso nos ampara nas quest o que tratam dos relacionamentos entre os objetos Tanto em manter estas liga es numa representa o interna aproveitando a id ia da representa o interna dos objetos destes relacionamentos quanto a representa o visual dos mesmos Veja no diagrama que segue que s o utilizadas classes como SegmentedLineEdge Edge Node entre outras que s o externas a este pacote diagram e que s o portanto classes que o framework violet jar nos fornece 3 2 4 Form Quanto ao pacote br com viniciusmayer gabrielus form exite apenas depend ncia do framework violet jar O pacote form resolve um problema que n o t o simples quanto parece que a com rela o a representa o visual na camada de vis o do Gabrielus dos objetos que estar o internamente em funcionamento isso tanto quando se est desenhando e dando propriedades aos objetos como tamb m quando estes mesmos objetos estar o passeando pelo diagrama devido a uma anima o de responsabilidade deste pacote tamb m dar funcionalidade ent o a esta representa o 28 visual dos objetos que internamente j existem Funcionalidades como por exemplo setar o nome do de um objeto espec fico mudar a co
18. configure mak make install A instala o do Subversion muito simples e convencional Por padr o o cliente Subversion s ir pedir senha durante a primeira conex o com o servidor Subversion pois o cliente do Subversion ir armazenar a senha e outras informa es de autentica o em subversion auth Isto cria poss veis pontos de explora o do servidor Subversion para mudar isto edite o arquivo em subversion config e altere a seguinte linha de store passwords ves Para store passwords no 38 Link para download http subversion tigris org downloads subversion 1 3 2 tar gz 49 Caso a linha n o exista ou esteja comentada come ando com basta acrecentar ela dentro da se o auth Caso a conex o com o servidor Subversion seja atraves de um servidor proxy edite o arquivo subversion servers acrescente as seguintes linhas global http proxy host proxy exemplo com br Heto ito DOE 3429 Caso exista algum servidor Subversion que deva ser acessado sem servidor proxy acrescente a linha abaixo ao arquivo dentro da se o globa1 colocando cada servidor separado por v rgula http proxy exceptions localhost 192 168 0 1 4 5 1 1 Ciclo b sico de trabalho Segue abaixo exemplos de uso das opera es b sicas a serem realizadas com rela o ao controle de versionamento de c digo que
19. de programa o visual DataFlow pode ser uma alternativa para a introdu o de no es b sicas de ci ncia da computa o tanto para o p blico em geral inclusive no espa o da escola como para o p blico universit rio e at mesmo em cursos de inform tica ou computa o Sem ter a inten o de p r diretamente em quest o a realidade conjuntural o presente trabalho pretende buscar um espa o novo para a aplica o da concep o de sistemas DataFlow que o espa o da educa o e do desenvolvimento de uma cultura inform tica mais diversificada Lembramos que de certo modo uma m quina de von Neumann pode ser pensada como um caso particular de arquitetura de fluxo de dados de modo que nosso trabalho n o vai na dire o de propor necessariamente uma alternativa tradi o do ensino de arquiteturas de computa o mas de propor lhe um outro ponto de partida Idealmente este novo ponto de partida pode significar uma amplia o do p blico alvo caso se perceba que sob esta nova forma a pr pria no o de arquitetura de computadores torna se mais acess vel ao p blico leigo interessado 2 1 Justificativas A hip tese que orienta este trabalho a de que um conceito de computa o tamb m um conceito de utiliza o de computadores Nardi 1993 Se um dia for outra a id ia de programa ser tamb m outra a id ia de programador e tamb m a de usu rio No que diz respeito ado o da computa o
20. diagram will virtually correspond to a machine like realization Let us begin by creating a distance between our proposal and computational orthodoxy represented by the assumption that a computer is like the commonsense notion of a brain Repositories of tokens have been traditionally promoted to memories of representations without any justification whatsoever gt 0 Figure 1 A token can move from one container to another For us computational systems are composed of simples elements of a few different kinds the substance of which we will not care to establish or at least are not in a hurry to do so Lets just say that Figura 06 Site na vers o padr o Apenas CSS habilitado JavaScript e Framework desabilitados E na vers o completa todas as tecnologias da camada Web foram habilitadas as folhas de estilo CSS o JavaScript e ent o o framework de arredondamento dos cantos dos conteiners do site 66 Gabrielus Project s Site Mozilla Firefox File Edit View Go Bookmarks Tools Help gt O nttpz gentoo unijui tche br mayer gabrielus www indexx html O ec EL G Google Gmail Inbox 25 Google Galen Gabrielus Pr Lj Login wes HTML Help by f Java Technolo 7 Welcome to N 2 Submarino co mh Time Manage E by Andr Souza Lemos Our goal is to develop an environment for dataflow visual programming based on a simple datafl
21. disposto o conte do das p ginas do site com a cor cinza claro texto preto Para este conteiner a a o da ativa o de um ink se diferencia dos demais conteiners de cabe alho e rodap adotandos se a cor cinza escuro e bordas pretas E por ltimo a vers o completa carrega tamb m o framework que faz o arredondamento 67 dos cantos dos conteiners do site Tanto o conteiner de cabe alho e rodap quanto o conteiner principal e o pr prio conteiner do site o conteiner definido com a cor preta e que envolve todos os demais conteiners do site tem seus cantos arredondados assim como tamb m as a es para os links que existem no cabe alho e rodap Para as a es quando da ativa o de um ink no conteiner principal estes foram mantidos da forma padr o com fundo cinza escuro e bordas pretas sem cantos arredondados 68 5 Conclus o Apresentamos portanto no decorrer do texto deste trabalho grande parte do todo desenvolvido neste projeto de pesquisa e com grande satisfa o que chegamos a conclus o de que os objetivos metas tra ados para este projeto foram todos alcan ados e ainda que superamos algumas de nossas expectativas Ficam claro in meros trabalhos futuros e a certeza de que muito trabalho ainda h de ser feito Como trabalhos futuros teriamos algumas tarefas que dizem respeito a tr s escopos diferentes Primeiro os que poderiam dizer respeito a este trabalho escrito seriam a escr
22. dos pacotes Java que o comp e qual o prop sito de cada um dos pacotes assim como a depend ncia que existe entre os pacotes tanto os definidos para a arquitetura do Gabrileus quando a dos pacotes do Gabrielus com os pacotes dos frameworks utilizados Quando ao Ambiente Web tratado no Capitulo 4 diz respeito a arquitetura que envolve a disponibiliza o do Gabrielus no site deste projeto e tamb m a arquitetura do site em si Quais as tecnologias que est o envolvidas no desenvolvimento do site quais os frameworks adotados para o desenvolvimento do mesmo quais as funcionalidades desejadas entre outras curiosidades J quando a disponibiliza o do Gabrielus no site trataremos especificamente de Java Web Start e mostramos passo a passo como que se deu o trabalho de disponibilizar o Gabrielus no site do projeto E por fim na conclus o Capitulo 5 apresentamos uma breve an lise do trabalho que realizamos e sugest es de trabalhos que ainda poder o vir o a ser desenvolvidos assim como os trabalhos que desejariamos ter desenvolvidos e que por falta de tempo habil n o foram realizados Quanto a estes trabalhos futuros e ou tarefas pendentes como forma de orienta o apresentamos uma s rie de alternativas e sugerimos alternativas ideais E assim apresentamos o poss vel do trabalho realizado no projeto Gabrielus 2 Projeto Cient fico Para al m do espectro de aplica es mais sofisticadas a proposta das linguagens
23. na m quina do usu rio Caso o JDK instalado na m quina seja inferior ao que est definido exibido ao usu rio a uma mensagem dizendo que o funcionamento do Gabrielus est comprometido j que ele no caso o Gabrielus sugere que se tenha a vers o definida no aplicativo que pode ser maior da que est instalado na m quina O usu rio saber portando que mesmo estando o aplicativo rodando pode vir a acontecer alguma a o n o esperada a estilo de n o salvar um diagrama por causa da vers o do JDK que ele tem instalado e que inadequado ao funcionamento pleno do aplicativo Indo mais adiante no c digo h a instancia o da classe Datar lowEditorFrame classe esta que localiza se dentro do pacote br com viniciusmayer gabrielus framework A instancia o desta classe se d com a passagem por par metro de uma DataF low usada apenas para obtermos o nome da classes DataFlowEditor Editor que em s ntese sera e carregar dos arquivos de internacionaliza es os conte dos correspondentes ao editor se que podemos dizer assim do qual estamos tratando no caso um DataFlowEditor 22 Em seguida adicionamos ao editor os diagramas que queremos disponibilizar para o usu rio No caso do Gabrielus e mais espec fico do c digo acima estamos disponibilizando ao usu rio apenas o acesso aos diagramas DataFlowDiagram ClassDiagram Este ltimo Diagramas de Classes f
24. o usu rio clicar em alguma coisa Voc pode recarregar apenas a rea que precisa ser alterada pela a o realizada E por ltimo o terceiro escopo de tarefas futuras a serem realizadas dizem respeito especificamente ao pr prio Gabrielus ou seja o aplicativo desktop Foi desenvolvida toda um estrutura com rela o aos objetos que estar o sendo disponibilizados nos diagramas dataflow e apenas alguns objetos foram desenvolvidos com forma de demostra o Portanto resta ainda desenvolver a parte visual dos demais objetos que ser o disponibilizados para a elabora o de um diagrama do tipo dataflow Quanto as anima es est tamb m toda estruturada a parte que cuida do comportamento das anima es no Gabrielus e resta implementar a interface do usu rio com as 46 Site do Tiles http struts apache org 1 x struts tiles index html 47 Site do Struts http struts apache org 48 AJAX acr nimo em lingua inglesa de Asyncronous Javascript And XML Site do AJAX http www tableless com br artigos ajaxdemo 49 Site da UNIJUI http www unijui tche br 50 Site do Submarino http www submarino com br 51 Voc poder encontrar mais referente aos objetos que estar o sendo disponibilizados nos Diagramas DataFlow em MAYER 70 anima es propriamente ditas Tamb m poder amos pensar no seguinte o que faz um novo membro da equipe de desenvolvimento do Gabrielus para estar apto a trabalhar no desenvolvim
25. outro ou mesmo combin los numa mesma linha Se colocarmos diversas linhas de comandos em um arquivo texto simples teremos em m os um Shell Script ou um script em shell j que Script uma descri o geral de qualquer programa escrito em linguagem interpretada ou seja n o compilada Uma vez criado um ShellScript pode ser reutilizado quantas vezes for necess rio Seu uso portanto indicado na automa o de tarefas que ser o realizadas mais de uma vez Todo sistema Unix e similares s o repletos de scripts em shell para a realiza o das mais diversas atividades administrativas e de manuten o do sistema Os arquivos de lote batch arquivos bat do windows s o tamb m exemplos de ShellScripts j que s o escritos em linguagem interpretada e executados por um Shell do Windows em geral o command com ou hoje em dia o cmd exe Os Shells do Unix por m s o inumeras vezes mais poderosos que o interpretador de comandos do windows podendo executar tarefas muito mais complexas e elaboradas A seguir apresentamos um fragmento do script shell criamos para automatiza a atualiza o tanto do site quanto da aplica o que estamos disponiblizando no site via o Java Web Start bin bash clear echo mw echo Desejas realmente fazer update do projeto gabrileus echo yes no read x 54 echo mw case x in yes y echo Executando a o svn update gabrielus
26. por ltimo o Java Web Start que o servi o configurado que disponibiliza o Gabrielus no site do projeto Mas detalhes dos trabalhos realizados nesta m quina ser o descritos adiante na se o deste trabalho que diz respeito exclusivamente a isso item 4 5 Servidor E na m quina local localhost que estar sendo feito o desenvolvimento do Gabrielus e ser necess ria uma configura o bem simples para que se passa trabalhar efetivamente no desenvolvimento do mesmo Primeiramente para que possamos obter os fontes ser necess rio uma ferramenta de controle de versionamento de c digo um cliente do Subversion Uma vez que a gente tenha este cliente e consigamos fazer um controle efetivo do versionamento do c digo fonte do Gabrielus precisaremos de uma IDE de desenvolvimento Esta IDE de desenvolvimento fica a crit rio do desenvolver embora seja sugerido o uso do NetBeans O projeto do Gabrielus NetBeans friendly e de f cil integra o com o NetBeans uma vez que sendo adotada a vers o 5 5 beta da IDE NetBeans bastar o esfor o de abrir o projeto que o cliente subversion traz para n s l do servidor subversion 40 Com rela o ao demais documentos relacionados ao projeto mais duas ferramentas seriam necess rias embora n o esteja definidas no diagrama de implanta o disposto acima Para os documentos de texto estamos utilizando o OpenOffice2 0 e para a elabora o da diagrama o UML utilizamos a ferram
27. qualquer localhost onde estar sendo desenvolvimento o Gabrielus No nosso servidor Subversion mantido pelo Java Net e sob nome gabrielus dev java net que ent o os nosso dados os nossos fontes armazenados Estamos utilizando este reposit rio de dados n o apenas para fazer o controle de versionamento dos c digos fonte do Gabrielus mas tamb m para mantermos versionados todos os documentos que est o relacionados ao projeto em si Estes documentos pode estar relacionados ao pr prio Gabrielus e se trata dos fontes pode tamb ms er os arquivos que constituem o site do projeto documentos como este o relat rio do projeto e ou qualquer outro documento que tenha sido criado para o desenvolvimento de qualquer uma das atividades mencionadas No servidor Web mantido pela UNIJU e com o nome gentoo unijui tche br que estamos hospedando o site do projeto Tamb m neste servidor que implementamos os principais servicos de disponilizac o do Gabrielus H um cliente Subversion para que possamos obter as atualiza es dos fontes do Gabrielus do Java Net o Apache Ant para a compila o e disposi o dos arquivos necess rios para o funcionamento do site nos lugares corretos um Script Shell para automatiza os processos de atualiza o do site no que diz respeito exclusivamente a disponibiliza o de uma nova vers o do aplicativo um web server Apache Tomcat para disponibilizar o nosso site e aplica o Java na internet e
28. respons vel em manter os relacionamentos que vierem a existir entre os objetos que estar o sendo utilizados para montar o diagrama em quest o viniciusmayer gabrielus diagram DataFlowNodeBeaninfo DataFlowGrid gridx double getPropertyDescriptorsQ PropertyDescriptor gridy double DataFlowGridQ setGrid x double y double void DataFlowRelationshipEdgeBeaninfo draw g2 Graphics2D bounds Rectangle2D void draw g2 Graphics2D bounds Polygon void getPropertyDescriptors PropertyDescriptor snap p Point2D void Rectangle2D void DataFlowRelationshipEdge DataFlowDiagramGraph DataFlowRelationshipEdged setBentStyte newValue BentStyle void connect e Edge p1 Point2D p2 Point2D boolean getBentStyleQ BentStyle getNodePrototypesQ Nodel getPointsQ ArrayList getEdgePrototypesQ Edgel Diagrama 05 Diagrama de Classes de vis o panor mica do pacote viniciusmayer gabrielus diagram de responsabilidade deste pacote tamb m unir a representa o interna de um objeto com o sua representa o visual desenho na camada de vis o e para estes dois a rea de listener de ambos Ou seja existe na camada de vis o um objeto em sua representa o interna que o usu rio n o v uma representa o visual e um listener que estar unindo essas representa es poss vel portanto que
29. temos na m quina local e o reposit rio que temos no Java Net e Criar uma copia local do reposit rio esta etapa s necess ria ser executada uma vez svn checkout http svn exemplo com br svn e Atualizando a copia local do reposit rio svn update e Enviando as altera es para o reposit rio svn commit Podemos alterar nosso m todo de acesso de nttp para nttps assim as transa es com o servidor ser o criptografadas Para tanto no servidor Subverion o Apache HTTPd deve estar configurado para tratar conex es HTTPS Caso o Apache2 esteja utilizando um certificado n o assinado por uma certificadora autorizada ser mostrada as informa es do certificado e ser necess rio aceita lo manualmente Para isto responda t para aceitar temporariamente a para aceitar definitivamente ou x para rejeitar definitivamente A op o de aceitar definitivamente o certificado s existe caso as informa es de 50 autentica o estejam sendo gravadas para mudar isto edite o arquivo em subversion config e altere a seguinte linha de store auth creds no Para store auth creds yes Caso a linha n o exista ou esteja comentada come ando com basta acrecentar ela dentro da se o auth Quanto ao servidor Subversion do Gabrielus que mantido pelo Java Net para criar uma copia local do reposit rio o seguinte comando deve ser executado sv
30. 3 4 6 4 Vers es Minimal Standard e Full do Site seem 64 S Cornelis dabo o hosce osuere std ut Marcha NR MARS E 69 dl ca EE 72 Espaco para ANOLA ES DO aS da Lo Ta da Ta 75 1 Introdu o Apresentamos neste relat rio de forma bastante objetiva os trabalhos realizados na constru o do Gabrielus um prot tipo de editor de diagramas e interfaces de execu o para uma ferramenta de modelagem arquitetural de sistemas computacionais Capitulo 2 Projeto Cient fico estaremos reprisando sucintamente o que foi tratado no trabalho apresentado como relat rio disciplina de Laborat rio de Sistemas I Mayer 2005 Em suma o relat rio apresentado disciplina de Laborat rio de Sistemas I a fundamenta o te rica do presente trabalho e tamb m grande parte da documenta o de implementa o do mesmo Neste mesmo capitulo encontram se ent o os objetivos deste trabalho assim como as suas justificativas sempre lembrando todo o trabalho realizado na disciplina de Laborat rio de Sistemas 1 No Capitulo 3 Ambiente Desktop estaremos apresentando a arquitetura desktop montada para o Gabrielus S o comentados os frameworks que foram utilizados para montas esta dita arquitetura do software e qual o prop sito da ado o da cada um deles Tamb m mostrada e comentada a arquitetura do pr prio Gabrielus a estruturas
31. ActionListener lt goButton TimingTarget DataFlowAnimationSetup 12 EE createAndShowGUld void rebeatButton JRadioButton E Diagrama 10 Diagrama de Classes detalhado do pacote br com viniciusmayer gabrielus animation 31 As demais classes que este pacote se relaciona s o classes da API do Java para a constru o da camada de vis o do m dulo de configura o de anima o e quanto a depend ncia do framework TimingFramework se resume as duas classes TimingController TimingTarget Tamanha simplicidade se deve ao fato de que primeiro o framework TimingFramework bastante amig vel e nos disponibiliza estas classes que abstraem toda e qualquer complica o com rela o aos procedimentos de configura o e processamento da anima o segundo porque conseguimos manter um bom n vel de modulariza o na constru o desta feature da arquitetura do Gabrielus e para este m dulo portanto resta a pessoa que estiver trabalhando com este m dulo acessar a classe DataFlowAnimationSetup 3 2 6 Projeto labi A seguir estamos apresentando os m dulos do projeto desenvolvido na disciplina de Laborat rio de Sistema I que foram aproveitados em sua totalidade no desenvolvimento do projeto em quest o Os m dulos que nos referimos s o respectivamente o m dulo que trata especificamente da arquitetura do protocolo de comunica o entre os objetos e o m dulo que trata do processamento multithrea
32. Sa da de Portas de Entrada para Reposit rios e uma ltima possibilidade de Porta de Entrada para Porta de Sa da E n o que n o estar o envolvidos os demais componentes do n cleo mas eles apenas est o representando fun es intermedi rias ou de condutores no decorrer do fluxo e n o necessariamente se colocando como ponto de partida ou ponto de chegada de uma transfer ncia do fluxo de um token J que a classe TDatar low que implementar todo o processo de desde o estabelecimento de comunica o entre os objetos at o transporte propriamente dito do token os tr s est gios do processo de transfer ncia entre objetos estar o aninhados na implementa o do m todo run desta a pr requisi o a requisi o e a transfer ncia nesta ordem Os nicos objetos que neste cen rio usar o as funcionalidades fornecidas por esta classe ser o o Reposit rio e a Porta de Entrada visto que s o apenas este os componentes capazes de iniciar um fluxo de dados e que ser o tamb m parte dos componentes que podem vir a se tornar o final do fluxo do qual basta ainda incluir a Porta de Sa da 35 TPreRequest DataFlowToken TPreRequest s String t DataFlowToken PResponse Thread content Object PR Trea type byte PRequest esponse preRequest boolean DataFlowTokenQ request boolean DataFlowToken o Object transferQ boolean setContent o Object void g
33. UNIJUI UNIVERSIDADE REGIONAL DO NOROESTE DO ESTADO DO RIO GRANDE DO SUL DETEC DEPARTAMENTO DE TECNOLOGIA CURSO DE INFORM TICA SISTEMAS DE INFORMA O GABRIELUS PROT TIPO DE UM EDITOR DE DIAGRAMAS E INTERFACES DE EXECU O PARA UMA FERRAMENTA DE MODELAGEM ARQUITETURAL DE SISTEMAS COMPUTACIONAIS ELEONOR VIN CIUS DUDEL MAYER Santa Rosa Julho de 2006 UNIJUI UNIVERSIDADE REGIONAL DO NOROESTE DO ESTADO DO RIO GRANDE DO SUL DETEC DEPARTAMENTO DE TECNOLOGIA CURSO DE INFORM TICA SISTEMAS DE INFORMA O GABRIELUS PROT TIPO DE UM EDITOR DE DIAGRAMAS E INTERFACES DE EXECU O PARA UMA FERRAMENTA DE MODELAGEM ARQUITETURAL DE SISTEMAS COMPUTACIONAIS ELEONOR VIN CIUS DUDEL MAYER Orientador Prof Andr Souza Lemos Co Orientador Prof Eder Mathias Trabalho apresentado como requisito aprova o na disciplina de Laborat rio de Sistemas II Santa Rosa Julho de 2005 Sum rio RA Da a ss Ih A IA DES RS EI I 5 2 Projeto Cientificos eov sas a a e SR 7 2 T TusttticatlVas sse diede qd P a m A A do nais 7 PES NOUNS UNDE ED 8 2 9 Projetando NUCIEO au sena cach eeiam NE SR latent a aati uM MEM D TS 9 2 3 1 Protocolo de Comunica o entre Objetos sse 10 2 3 2 Esquema Multithreading do N cleo debas 11 2 3 3 Modelo de Objetos eODJetos a uses putas usando eco ed rai recon educ s 11 DS CONS OCS SR uum DS 11
34. a franca not even a specific language but the suggestion and the experience of a new type of tool for expression without boundaries Based on this experience many others can be devised in the future It is for instance the kind of knowledge of computer science that could be taught in elementary school apart from the usual Wizard of Oz like programs for 7computers in education For the first time the burden will be on the implementational aspect perhaps actualization would be a better term 7 not on systems analysis and or design It should hopefully be a much smaller burden In this notation sketches are not only acceptable as an initial attempt they are precisely the substance of design from which operational systems are just condensed forms Syntactical variations will be accepted for as long as they continue to make sense and the supporting mechanisms will have to be continuously adapted accordingly Itis important to notice that any formalized stable version of a working diagram should not be seen as an end in itself or the conclusion of a supposedly necessary process but only as an actualization of a virtuality a movement that implies some loss of potentiality There will be dialects heterogeneous colloquial forms altemative usages and other differential processes comparable to those occurring in ordinary language that may or may not be eventually formalized hardwired into an individual persistent object Yet every occurrence of a
35. acilitada de metadata entre as ferramentas de modela o baseadas em OMG UML e os reposit rios OMG MOF 16 ler modelos desenhados em outras ferramentas UML O livro Object Oriented Design amp Patterns Horstmann 2003 traz uma discuss o com rela o a padr es de projeto que veio a delinear o framework do editor gr fico do Violet A raz o para tamanho cuidado com rela o aos padr es de projeto se devem ao fato de querer manter o aplica o escrita da forma mais simples poss vel com um n mero m nimo de arquivos de c digos fonte 3 1 2 TimmingFramework O Timing Framework um framework desenvolvido para tornar mais f cil a implementa o de anima es em Java com controles baseados em tempo O framework dividida em tr s partes l gicas que constituem os seguintes pacotes e Fundamentals org jdesktop animation timing Interpolation org jdesktop animation timing interpolation Triggers org jdesktop animation timing triggers O pacote Fundamentals descrito detalhadamente no artigo Timing is Everything que voc poder encontrar pr prio site do projeto TimingFramework As classes deste pacote se comportam como a base do objeto TimingController objeto este que atualmente roda literalmente a anima o cycle Envelope s o as classes que mantem as especifica es da anima o as Interfaces TimingTarget TimingListener s o ent o usadas para receber os ev
36. aflow language or notation also developed within the scope of this project The definitions expressed here are related to the long term objectives of this project the present stage being an initial prototype with a very limited set of features The notation is not supposed to become a lingua franca not even a specific language but the suggestion and the experience of a new type of tool for expression without boundaries Based on this experience many others can be devised in the future It is for instance the kind of knowledge of computer science that could be taught in elementary school apart from the usual Wizard of Oz like programs for computers in education For the first time the burden will be on the implementational aspect perhaps actualization would be a better term not on systems analysis and or design It should hopefully be a much smaller burden In this notation sketches are not only acceptable as an initial attempt they are precisely the substance of design from which operational systems are just condensed forms Syntactical variations will be accepted for as long as they continue to make sense and the supporting mechanisms will have to be continuously adapted accordingly It is important to notice that any formalized stable version of a working diagram should not be seen as an end in itself or the conclusion of a supposedly necessary process but only as an actualization of a virtuality a movement that implies some loss o
37. ages and other differential processes comparable to those occurring in ordinary language that may or may not be eventually formalized hardwired into an individual persistent object Yet every occurrence of a diagram will virtually correspond to a machine like realization Let us begin by creating a distance between our proposal and computational orthodoxy represented by the assumption that a computer is like the commonsense notion of a brain Repositories of tokens have been traditionally promoted to memories of representations without any justification whatsoever o e Figure 1 A token can move from one container to another For us computational systems are composed of simples elements of a few different kinds the substance of which we will not care to establish or at least are not in a hurry to do so Let s just say that les or tokens that can be temporarily held by and at some future Saree sed 57 provided that there is a path that gets them there and another that takes them away For the sake of simplicity we will admit that there are two kinds of tokens which will be represented by different colors http localhost 6080 gabrielus www Figura 04 Screenshot panoramico do site do projeto 4 6 1 Tableless Ha uma controv rsia entre desenvolvedores na hora de definir o termo Tableless Muitos acreditam que somente uma caracter stica de sites que n o us
38. am tabelas para layout outros no entanto acreditam que Tableless faz parte de um conceito muito maior e que engloba os web standards em geral Dentre as poss veis vantagens da metodologia est o a diminui o do peso da p gina e melhora da acessibilidade embora n o s o muitos os sites tableless hoje em dia que carregam essa segunda caracter stica pois poucos desenvolvedores captaram a mensagem corretamente criando sites tableless distantes daquilo que engloba o Tableless a padroniza o de tecnologias Tableless seria somente a filosofia de construir web sites sem tabelas e n o necessariamente seguindo os padr es Hoje em dia falar simplesmente que Tableless meramente uma filosofia extremamente errado pois no c digo HTML as tabelas s o para estruturar formul rios e n o para definir layout E uma vez considerado o advento da tecnologia os sites estruturados em tabelas t m certo problema quanto transfer ncia de dados geralmente quando se acessa um site que foi desenhado atrav s das tabelas o mesmo quebra e bagun a todo o conte do Com Tableless diferente pois 61 todo o conte do em geral se mantem limpo e claro Na linguagem oficial do HTML por exemplo as tags ul 1i surgiram para formar se as listas O que pretende se explicar aqui que cada tag tem sua funcionalidade O desenvolver do layout fica em rela o CSS simplesmente Antes para alguns at hoje para se trocar a cor da font
39. amework que foi disponibilizada v rios efeitos foram adicionados como por exemplo o de tranpar ncia abas e configura o de colunas No site do framework poss vel encontrar exemplos de uso de todas as funcionalidades do framework Para maiores informa es visite o site do framework Nifty Corners Cube e deixe a criatividade fluir 4 6 4 Vers es Minimal Standard e Full do Site Foram criadas tr s vers es do site do projeto uma vers o m nima uma vers o padr o e outra 64 completa Na vers o m nima usou se apenas HTML e desabilitados quaisquer tecnologias al m t desta como por exemplo CSS e ou JavaScript Tamb m foi dispensado o uso do framework de arredondamento dos cantos j que ele trabalha com as folhas de estilo CSS e JavaScript Gabrielus Project s Home Page Mozilla Firefox File Edit View Go Bookmarks Tools Help L nttp gentoo unijuitche br mayer gabrielus www inde html O cc EL Google 2 Gmail Inbox 78 Google Calen Gabrielus Pr Login mes HTML Help by Java Technolo 2 Welcome to N amp Submarino co ms Time Manage E 2l Alterar para o modo standard full gt Gabrielus A Dataflow Programming Language Home Projeto Ciet fico Ambiente Desktop Ambiente WEB Java Sobre by Andre Souza Lemos Our goal is to develop an environment for dataflow visual programming based on a simple dat
40. as de fim da anima o e entre este os demais objetos que atuam como coordenadas intermedi rias coordenadas de refer ncia da anima o propriamente dita 3 2 5 Animation O pacote br com viniciusmayer gabrielus animation se resume as configura o das anima o do Gabrielus Temos uma classe que mant m as propriedades relacionadas ao comportamento das anima es DataFlowAnimationControlPanel outra classe DataFlowAnimationView que constr i a tela de configura o com uma panel de demostra o da configura o em quest o e ainda a classe que o nosso listener na aplica o DataFlowAnimationSetup 30 viniciusmayer gabrielus animation DataFlowAnimationControlPanel actionPerformed ae ActionEvent void setupCycleGUIQ void setupEnvelopeGUIQ void setupPropertysetterGUI void setupKeyTimesGUIO void DataFlowAnimationSetup setupKeyaluesGUI void AAA setupKeySplinesGUIQ void 0 void setupAccelerationGUIQ void DataFlowAnimationControlPanel animationView DataFlowAnimationView getFieldValueAsint field JTextField int getFieldValueAsDouble field JTextField double enableTextFields numKeyFrames int void DataFlowAnimationView currentFraction float DataFlowAnimationviewQ getAnimatingComponentd JComponent beginQ void void timingEvent cycleElapsedTime long totalElapsedTime long fraction
41. as folhas de estilo CSS e continuam desabilitados o JavaScript e o framework que trabalha arredondado os cantos dos conteiners do site j que ele depende do JavaScript para funcionar 43 JavaScript uma linguagem de programa o criada pela Netscape em 1995 que a princ pio se chamava LiveScript para atender principalmente as seguintes necessidades a Valida o de formul rios no lado cliente programa navegador e b Intera o com a p gina Assim foi feita como uma linguagem de script Javascript que tem sintaxe semelhante a do Java mas totalmente diferente no conceito e no uso 65 Gabrielus Project s Site Mozilla Firefox File Edit View Go Bookmarks Tools Help da d B BD QM 0 ntpuigentoo unijuitche br mayer gabrielus wwwrindex html 7 O ec Google 2 Gmail Inbox 5 Google Calen Gabrielus Pr Login des HTML Help by Fj Java Technolo 2 Welcome to N amp Submarino co mh Time Manage Home Projeto Ciet fico Ambiente Desktop Ambiente WEB by Andr Souza Lemos Our goal is to develop an environment for dataflow visual programming based on a simple dataflow language or notation also developed within the scope of this project The definitions expressed here are related to the long term objectives of this project the present stage being an initial prototype with a very limited set of features The notation is not supposed to become a lingu
42. cativo Atributos do elemento information 0 title Nome da aplica o 0 vendor Nome do dono da aplica o 0 home page Cont m um simples atributo href que aponta para a URL da p gina que inicia a aplica o Esse elemento usado pelo Application Manager para permitir ao usu rio ir at a p gina da aplica o para obter mais informa es 0 description Uma pequena descri o da aplica o O elemento description opcional O atributo kind utilizado para definir como a descri o deve ser usada Ele pode ter os seguintes valores on line short tooltip 0 icon Cont m o atributo href onde informamos uma URL que aponta para uma imagem correspondente ao icone da aplica o O atributo opcional kind splash pode ser usado para informar que uma imagem ser usada na splash screen na inicializa o da aplica o offline allowed Este elemento opcional e indica se a aplica o pode ser executada off line Se este elemento n o for informado a aplica o s poder ser executada on line fazendo com que o Java Web Start sempre verifique a vers o da aplica o para saber se deve ou n o atualiz la e depois execut la Agora se este elemento for informado o Java Web Start ir tentar verificar se existe uma nova atualiza o dispon vel entretanto se j existir uma vers o da aplica o na m quina do cliente essa verifica o ir terminar em poucos segundos e a aplica o existente no cli
43. como parte do curr culo escolar por exemplo uma s rie de escolhas est o ainda por serem feitas Elas dependem do modo como se disponha da computa o teoria e pr tica na cultura humana como um todo n o decorrem apenas do que se pensa nos setores de aplica o mais tradicionais da computa o voltados para o processamento de dados tecnologia da informa o a automa o e a computa o cient fica Apesar do que sugerem os manuais de t cnicas de programa o um programador de computadores faz uso constante da sua experi ncia Ao projetar um sistema de informa es complexo o engenheiro de software se assemelha mais a um m dico cirurgi o e menos a um engenheiro eletricista pr ticas adequadas s o t o importantes quanto princ pios adequados Talvez seja por isso que o grande avan o na programa o orientada a objetos sobreveio n o quando os seus princ pios te ricos foram concebidos mas bem depois quando padr es de projeto de codifica o e de implementa o foram impostos como um conjunto coeso e consistente de pr ticas a serem seguidas Sendo assim justifica se uma busca de padr es de programa o que sejam compat veis com o universo do usu rio leigo N o seriam estes padr es uma prepara o para o exerc cio profissional da programa o mas tamb m n o pertenceriam a um mundo separado Sabe se hoje que o conhecimento m dico por mais sofisticado que seja deve estar em certa medida acess ve
44. de checagem de estilo de c digo Para a instala o deve se fazer o download do Ant do site do projeto Apache ver refer ncias E necess rio descompactar o arquivo em um diret rio de sua prefer ncia a qual chamaremos ANT HOME Al m disso necess rio adicionar a vari vel de ambiente ANT HOMI GI com valor apontando para o diret rio onde voc descompactou o Ant Para finalizar adicione o caminho ANT HOME bin vari vel de ambiente PATH Depois de de descompactar voc deve seguir os seguintes passos e Copie o diret rio que foi descompactado para onde voc desejar melhor exemplo usr local jakarta ant 1 5 1 e Como root edite o arquivo etc profile crie uma vari vel de ambiente ANT HOME apontando para o diret rio onde esta o Ant exemplo export ANT HOME usr local jakarta ant 1 5 1 Agora devemos configurar a PATH export PATH SPATH SANT HOME bin 25 JNI ou Java Native Interface um padr o de programa o que permite que a m quina virtual da linguagem Java acesse bibliotecas constru das com o c digo nativo de um sistema Ela permite tamb m que aplica es Java sejam embutidas em aplica es nativas 26 Site do Apache Ant http ant apache org 43 e Depois escreva ant na linha de comando se o resultado for como o que se segue Beleza Ant instalado com sucesso Bial lebres buile sam closes mor ease Build failed
45. der e usar Estas aplica es trazem funcionalidades do tipo Gera o de c digo O Violet n o gera c digo algum a partir dos diagramas UML criados Engenharia reversa O Violet n o gera diagramas UML a partir de c digos fonte Checagem da sem ntica dos modelos Voc poder desenhar diagramas UML contradit rios Importa o e exporta o de em arquivos do tipo XMI O Violet n o gera arquivos do tipo XMI que podem ser importandos para outras ferramenteas UML nem poder 6 A Unified Modeling Language UML uma linguagem de modelagem n o propriet ria de terceira gera o A UML n o um m todo de desenvolvimento o que significa que ela n o diz para voc o que fazer primeiro e em seguida ou como desenhar seu sistema mas ele lhe auxilia a visualizar seu desenho e a comunica o entre objetos 7 Site do Cay Horstmann http www horstmann com Cay Horstmann tamb m autor dos livros Core Java 2 Volume I Fundamentals Core Java 2 Volume 2 Advanced Features Core JavaServer Faces entre outros 8 Site da Licen a GNU General Public Licence http www gnu org copyleft gpl html 9 Site do RationalRose http www rational com products rose index jsp 10 Site do Together http www borland com together 11 Site do ArgoUML http argouml tigris org 12 Site do Poseidon http www gentleware com 13 XMI ou XML Metadata Interchange um grupo de gerenciamento de objetos do XML O XMI permite a troca f
46. ding do aplicativo 3 2 6 1 Protocol O m dulo do protocolo de comunica o entre objetos define portanto de que forma se realizar a comunica o entre os objetos ativos do sistema A comunica o que desejamos que aconte a entre estes objetos ativos nada mais do que a transfer ncia do conte do de um objeto para outro Os componentes que est o sendo considerados ativos portanto s o o Reposit rio e a Porta de entrada o reposit rio porque pode tanto querer transferir um objeto Token como tamb m receber objetos e a Porta de Entrada pois embora n o seja capaz de receber objetos estar gerando objetos e consequentemente querendo transferi los Ent o estamos entendendo por objeto ativo todo aquele componente do sistema que capaz de iniciar uma nova fase de transfer ncia de tokens entre os objetos do sistema ou seja queira fazer com que este conte do o Token flua ou continue fluindo por entre os objetos constituintes do sistema 32 Baseamos o nosso protocolo de comunica o em um protocolo muito simples o modelo de solicita o resposta em ingl s request response Este protocolo a id ia que h por tr s das estruturas mais comuns de sistemas distribu dos do tipo cliente servidor O cliente envia uma mensagem ao servidor solicitando algum tipo de servi o como no nosso caso uma requisi o de transfer ncia o servidor faz o trabalho e envia para o cliente os dados solicitados Podemos ent o fazer
47. dor de servi os 21 Os protocolos internet formam o grupo de protocolos de comunica o que implementa a pilha de protocolos sobre a qual a internet e a maioria das redes comerciais roda Eles s o algumas vezes chamados de protocolos TCP IP j que os dois protocolos mais importantes desse modelo s o o protocolo TCP Transmission Control Protocol 38 muitos casos o programa cliente estritamente falando o pr prio browser do usu rio Quanto ao programa servidor muitas das tarefas rotineiras carregamento inicial configura o defini o de logs mecanismos de autentica o de usu rios etc j est o previamente implementadas Cabe aos analistas e programadores focar sua aten o quase que exclusivamente nas especificidades da aplica o a ser desenvolvida e saber interagir com o web designer E para tanto que desenvolvemos o site do projeto Gabrielus para experimentar o desafio de tornar o Gabrielus n o mais apenas uma aplica o que roda em um computador isolado e portanto tornar se distribu da e acess vel a quem estiver conectado internet e tamb m para experimentar os desafios da agrega o de diversas tecnologias e linguagens num nico prop sito tornar simples o desenvolvimento e a disponibiliza o do Gabrielus Segue diagrama de implanta o do Gabrielus onde mostra se como que foram ent o arquiteturados os servi os que prov m um ambiente bastante simples de desenvolvimento e disponibiliza o do
48. e era uma complica o j estruturando o site em Tableless a dificuldade quase zero pois basta mudar no CSS por exemplo font black por font blue Muitos desenvolvedores costumam criticar a linguagem original Tableless por conta da dificuldade que se encontra inicialmente para estruturar um site todo em texto no layout desejado por CSS E falar que os sites desenvolvidos em Tableless fogem ao padr o n o v lido pois todos ou a maioria dos c digos s o v lidos seguindo as recomenda es da 4 6 2 CSS Cascading Style Sheets ou simplesmente CSS s o estilos para p ginas web e envolvem um conceito inovador possibilitam a mudan a da apar ncia simult nea de todas as p ginas relacionadas com o mesmo estilo Ao inv s de colocar a formata o dentro do c digo o programador cria uma liga o em ingl s para uma p gina que cont m os estilos procedendo de forma id ntica para todas as p ginas de um portal Quando quiser alterar a apar ncia do portal basta portanto modificar apenas um arquivo Exemplo coment rio em css igual linguagem Java body font family Arial Verdana sans serif background color FFF margin 5px 10px O c digo acima define fonte padr o Arial caso n o exista substitui por Verdana e em ltimos caso se n o existir define a fonte sans serif Define tamb m a cor de fundo do corpo da p gina e margens 41 Site da W
49. e setar com a URL do site da Sun Exemplo j2ee version 1 5 href http java sun com products autodl j2se gt property O elemento property define uma propriedade do sistema que poder ser acessado pelo m todo getProperty classe System System getProperty Este elemento requer dois atributos name e value Exemplo lt property name greeting value Ol Mundo gt Atributos do elemento application desc Esse elemento informa que o arquivo JNLP est executando uma aplica o e n o uma Applet Ele possui um atributo opcional main class que usado para especificar o nome da classe principal da aplica o isto a classe que possui o m todo public static void main String args O atributo main class pode ser omitido caso o primeiro JAR definido contenha o arquivos Manifest informando a classe principal Argumentos podem ser especificados application desc main class Main lt argument gt arg um lt argument gt lt argument gt arg dois lt argument gt lt application desc gt Atributos do elemento applet desc Java Web Start tamb m possui suporte para execu o de Applets Java Exemplo 59 lt applet desc clocumenicBase Inicicjos name TimePilot main class Time Pilot TimePilotApp width 527 height 428 gt lt param name key1 value valuel gt lt param name key1 value va
50. enta Jude Logo uma vez que se tenha este aplicativos em funcionamento na m quina do desenvolvedor ser poss vel trabalhar com qualquer parte do projeto deste a codifica o at aos arquivos HTML 4 1 Subversion Um sistema de controle de vers o ou de vers es um software com a finalidade de controlar diferentes vers es no desenvolvimento de um documento Esses sistemas s o muito usados no desenvolvimento de software para controlar as diferentes vers es hist rico e desenvolvimento dos c digos fontes e tamb m da documenta o Cada sistema tem sua particularidade mas a maioria deles compartilham alguns conceitos b sicos Apesar disso poss vel que algum sistema espec fico funcione de maneira totalmente diferente A maior parte das informa es com todo o hist rico ficam guardadas num reposit rio em ingl s repository num servidor qualquer Geralmente o acesso feito por um cliente pela rede via socket e pode ser feito localmente quando o cliente est na mesma m quina do servidor O reposit rio armazena a informa o um conjunto de documentos de modo persistente num sistema de arquivos ou num banco de dados qualquer poss vel que o armazenamento seja feito em outros dispositivos capazes de eternizar e resgatar facilmente a informa o Cada servidor pode ter v rios sistemas de controle de vers o e cada sistema pode ter diversos reposit rios limitando se na capacidade de gerenciame
51. ente ser executada e Atributos do elemento security Toda aplica o por padr o executada em um ambiente restrito similar ao applet Sandbox O elemento security pode ser utilizado para solicitar acesso irrestrito Se o elemento all permissions for especificado a aplica o ter acesso total a m quina do cliente e a rede por m se uma aplica o solicita acesso total todos os arquivos JAR dever o ser assinados Atributos do elemento resource O elemento resource serve para especificar 40 http java sun com developer Books javaprogramming JAR sign signing html 58 todos os recursos como classes java bibliotecas nativas e propriedades do sistema que fazem parte da aplica o A defini o de um recurso pode ser restrita para um espec fico sistema operacional arquitetura ou uso local dos atributos os arch e 1ocale Ele possui seis sub elementos que s o jar O elemento jar especifica um arquivo JAR utilizado pela aplica o eue Inter my Jeni nativelib O elemento nativelib especifica um JAR que cont m bibliotecas nativas Exemplo lt nativelib href lib windows corelib jar 32se O elemento 32se especifica qual a vers o da JRE a aplica o suporta bem como os par metros padr o para a JVM O atributo href pode ser setado com a URL para o Java Web Start poder fazer o download da JRE caso o cliente n o possua instalado por padr o devemos sempr
52. ento do projeto Poder amos elaborar um passo a passo do desenvolvedor em ingl s developer how to de como dever proceder este novo integrante da equipe para estar pronto para ajudar no desenvolvimento do Gabrielus Perguntas do tipo como obter uma c pia do projeto l no Java Net como conectar o projeto na ferramenta de desenvolvimento como manter o reposit rio local a c pia do projeto e remoto reposit rio do projeto no Java Net atualizado entre outras a o b sicas do desenvolvedor poderiam ent o estar sendo tratadas neste documento Especificada toda a arquitetura do Gabrielus deste a arquitetura desktop at arquitetura web e dito como fazer para participar do desenvolvimento do Gabrielus h de ser escrito um Estudo de Caso para mostrar como que um usu rio acessa o Gabrielus e como utiliz lo agora numa esp cie de passo a passo do usu rio em ingl s user how to bem simples do aplicativo Um diagrama fechado cuja execu o c clica poderia ser adotado como refer ncia e j com o Gabrielus em m os para exemplificar mostrariamos como construir este diagrama b sico 71 6 Refer ncias SEBESTA Robert W Conceitos de Linguagens de Programa o Bookman Porto Alegre 2000 FILHO Antonio Mende da Silva Introdu o Programa o Orientada a Objetos In Revista Espa o Acad mico No 35 Abril de 2004 VOSS Greg Object Oriented Programming An Introduction McGraw Hill 1991 Apud
53. entos de tempo a classe TimingEvent que especifica os eventos que 0 TimingCont roller produz J o pacote Interpolation cujos conceitos principais s o transcritos em seguida explicado detalhadamente no artigo Time Again que voc pode acessar tamb m no site do projeto TimingFramework Eis os principais conceitos relacionados ao pacote Interpolation do framework TimingFramework e Property Setters F cil delega o das propriedades da anima o do framework com por exemplo trocar o tamanho do componente relacionado ao tempo Esta capacidade dada a partir da combina o das classes PropertyRange e da classe ObjectModifier 14 Site do artigo Timing is Everything http today java net pub a today 2005 02 15 timing html 15 Site do artigo Time Again http today java net pub a today 2006 03 1 6 time again html 17 e KeyFrames Permite a constru o de anima es mais poderosas e complexas a partir de m ltiplos passos sequ ncias por meio de pares de tempo e valor KeyFrames combina objetos KeyTimes KeyValues KeySplines e KeyFrames InterpolationType e Non Linear Interpolation Anima es mais interessantes e teis a partir da especifica es de pares de valores de interpolation Esta capacidade controlada atrav s do uso da classe KeySplines que contem uma ou mais estruturas Spline Acceleration deceleration F cil especifica o de simples comportamento
54. er gabriel us www href jws gabrielus jnlp gt lt information gt lt title gt Gabrielus lt title gt lt vendor gt E Vinicius D Mayer amp Andre S Lemos lt vendor gt homepage href www index html gt lt description gt Gabrielus DataFlow Diagrams Editor lt description gt lt description kynd short gt Gabrielus DataFlow Editor lt description gt lt icon href images giv png gt lt offline allowed gt lt information gt lt resources gt lt j2se version 1 5 gt lt jar href dist Gabrielus jar main true gt jar href lib TimingFramework jar gt lt Jar 5 lilo wiolee lt property name propriedade value exemplo de propriedade gt lt resources gt lt application desc main class br com viniciusmayer gabrielus editor DataFlowEd ste gie gt jnlp O arquivo JNLP acima possui as tags necess rias para o funcionamento do Java Web Start portanto iremos ver mais detalhadamente todas as tags que um arquivos JNLP pode conter e Atributos do elemento jnip spec Por padr o o valor 1 0 podendo ser vers es 1 0 ou superiores do 57 release que est trabalhando 0 codbase URL do servidor Web onde a aplica o dever ser iniciada 0 href URL que aponta a localiza o do pr prio arquivo JNLP O Java Web Start necessita deste atributo para identificar as caracter sticas de execu o de um apli
55. ernacionaliza o Com as necessidades de cria o de aplica es globais sejam essas em ambiente Web ou n o fica cada vez mais comum o uso de aplica es internacionalizadas ou seja aplica es que mudam o idioma de acordo com a l ngua em ingl s language e pais em ingl s country do usu rio A palavra internacionaliza o um tanto quanto grande mas podemos tamb m usar I18N que quer dizer que entre o primeiro e o ltimo N da palavra InternationalizatioN existem 18 letras No arquivo DataFlowEditorString encontramos as internacionaliza es referentes ao nome do aplicativo por exemplo nome do arquivo da logo do aplicativo nomes e teclas de acesso r pido para os diagramas que estar o dispon veis assim como o nome que ser dado aos arquivos gerados pelo Gabrielus e as suas extens es J no arquivo DataFlowEditorString mantem se o n mero da vers o do Gabrielus e a data de compila o da vers o em quest o Os outros dois pacotes cujo pacote br com viniciusmayer gabrielus editor depende s o pacotes do pr prio Gabrielus e que mant m responsabilidades sobre outras funcionalidades do aplicativo O pacote br com viniciusmayer gabrielus diagram mant m responsabilidades exclusivas sobre a constru o do ambiente de diagrama o DataFlow j o pacote br com viniciusmayer gabrielus framework 6 respons vel pela disponibiliza o de componentes b sico do aplicativo e que na maior parte das vezes s o
56. es do pr prio sistema e necessariamente o devido protocolo de comunica o O modelo de programa o adotado busca a m xima simplicidade S o utilizadas constru es cujo sentido bvio pelo contexto n o requerendo por parte do usu rio um conhecimento pr vio espec fico de sistemas computacionais seja do ponto de vista da organiza o seja do ponto de vista da arquitetura Neste sentido est o exclu dos do modelo por exemplo conceitos sofisticados de sincroniza o e controle de fluxo que tornariam o modelo aplic vel ao desenvolvimento tecnol gico em sentido estrito Em fim este trabalho apresenta o prot tipo de um ambiente de programa o que partindo de uma nota o diagram tica dada e apresentada permitira a representa o de sistemas computacionais de forma puramente arquitetural 2 3 Projeto do N cleo O projeto de um n cleo de ambiente de programa o visual dataflow levou em considera o a exist ncia de um editor diagram tico suficientemente flex vel que pudesse aliar visibilidade acessibilidade efici ncia ao projeto arquitetural Fez se necess rio contar com uma representa o interna que faz o papel de interface entre a representa o visual dos diagramas e o componente editor que produz o funcionamento propriamente dito dos sistemas e este o mecanismo que estamos chamando de n cleo de ambiente de programa o visual dataflow Mayer 2005 Dividimos o projeto do n cleo em
57. etContentQ Object setType b byte void ge obj String result boolean TDataFlow Mae rad void TDataFlow s String t DataFlowToken PResponse R 7 preRequest boolean requestQ boolean transferQ boolean TRequest TRequest s String t DataFlowToken r PResponse TTransfer preRequest boolean request boolean TTransfer s String t DataFlowToken PResponse transfer boolean preRequestQ boolean request boolean transfer boolean Diagrama 14 Diagrama de Classes detalhado do pacote br com viniciusmayer gabrielus tthread TPreRequest a classe cujo m todo run herdado de TThread implementar o processo de pr requisi o para todos os demais componentes do prot tipo ou seja para os Seletores para os Polarizadores para o Interruptor a Interface o Functor e o Multiplicador ficando de fora o Reposit rio e a Porta de Entrada que se aproveitar o da classe TDatar low e a Porta de Sa da que n o implementar processamento de transfer ncia de token justamente por ser um dos componentes de final de fluxo Haver ainda de existir alguns componentes descendentes do tipo Fun o mais estes ser o composi es destes objetos mais primitivos e far o uso ent o deste mesmo recurso para implementa o do processo de pr requisi o A implementa o da classe TRequest diz respeito nica e excl
58. ever uma esp cie de Guia do Desenvolvedor ou seja como que a pessoa que estar se envolvendo com o desenvolvimento do Gabrielus faz para conseguir trabalhar efetivamente Quais as ferramentas que se fazem necess rias e onde ele consegue encontr las E como instal las e plugar os projetos do Gabrielus nestas ferramentas b escrever uma esp cie de Manual do Sistema para a pessoa que for usar o Gabrielus no desenvolvimento de alguma tarefa trabalho e ou atividade que diz respeito ao que trata o Gabrielus Como que eu salvo um diagrama Como recupero este diagrama Como fa o para gerar uma imagem do diagrama que desenhei E perguntas deste escopo que poderiam ser esclarecidas para o usu rio propriamente dito do Gabrielus J como forma de orienta o sugeriria que se usasse o JavaHelp para o desenvolvimento deste Manual do Sistema O JavaHelp um projeto Java da Sun que est dispon vel para download no site do projeto deste aplicativo no Java Net Segundo que diz respeito ao desenvolvimento do site do Gabrielus o menu ficou a 44 Site do JavaHelp http java sun com products javahelp 45 Site do Projeto JavaHelp no Java Net https javahelp dev java net 69 principio sem funcionalidade Teriamos ent o duas alternativas para construirmos o mecanismo do menu do site do Gabrielus a Tiles do Struts O Tiles o mecanismo de templates do Struts e torna poss vel reutilizar layouts de p ginas de for
59. f potentiality There will be dialects heterogeneous colloquial forms alternative usages and other differential processes comparable to those occurring in ordinary language that may or may not be eventually formalized hardwired into an individual persistent object Yet every occurrence of a diagram will virtually correspond to a machine like realization Let us begin by creating a distance between our proposal and computational orthodoxy represented by the assumption that a computer is like the commonsense notion of a brain Repositories of tokens have been traditionally promoted to memories of representations without any justification whatsoever 3 0 Figure 1 A token can move from one container to another For us computational systems are composed of simples elements of a few different kinds the substance of which we will not care to establish or at least are not in a hurry to do so Let s just say that there are these moving particles or tokens that can be temporarily held by and at some future point in time released from containers provided that there is a path that gets them there and another that takes them away For the sake of simplicity we will admit that there are two kinds of tokens which will be represented by different colors E Done Figura 05 Site na vers o m nima Apenas HTML CSS JavaScript e Framework desabilitados Para a vers o padr o habilitaram se
60. float void paintComponent g Graphics void Diagrama 09 Diagrama de Classes de vis o panor mica do pacote br comviniciusmayer gabrielus animation O pacote animation cujo pacote br com viniciusmayer gabrielus framework depende tem como dependencia sua o framework TimingFramework Observe no diagrama abaixo que a classe TimingController esta associada a classe DataFlowAnimationControlPanel e que a interface TimingTarget implementada pela classe DataFlowAnimationView ambas as classes s o providas pelo framework TiminFramework NumberFormat TimingController ResourceBundle Jeane DataFlowAnimationControlPanel DataFlowAnimationView currentFraction float actionPerformed ae ActionEvent void setupCycleGUld void setupEnvelopeGUld void DataFlowAnimationViewQ getAnimatingComponentd JComponent setupPropertysetterGUIO void M EO id t i setupKeyTimesGUIQ void JFormattedTextField 7 SEDE Vae CUM wd timingEvent cycleElapsedTime long totalElapsedTime long fraction float void 1 setupKeySplinesGUIO void paintComponent g Graphics void accelerationFieTes setupAccelerationGUlQ void DataFlowAnimationControlPanel animationView DataFlowAnimationView getFieldValueAsintifield JTextField int getFieldValueAsDouble field JTextField double enableTextFields numKeyFrames int void
61. forma es do servidor submetendo em ingl s commit as altera es O servidor ent o guarda a nova altera o junto com todo o hist rico mais antigo Se o desenvolvedor quer atualizar sua c pia local necess rio atualizar as informa es locais e para isso necess rio fazer baixar novidades do servidor em ingl s update E eem eem al M quina Servidor endere o Conjunto E das vers es Sistema de controle de vers o Hist rico vers o N vers o 2 i bs A eer Desenvolvedor eer Poss vel IDE s integrada com 3 7 poc ttre vers o Figura 01 Esquema geral f sico Figura 02 Esquema geral l gico 4 2 Ant Ant uma das mais tradicionais e conhecidas ferramentas desenvolvida pelo projeto Jakarta Seus objetivos est o ligados a automatiza o de processos de constru o em ingl s build al m de testes e distribui o em ingl s deploy de aplica es para projeto em Java Isto necessidade de automatiza o de tarefas como compila o de projetos montagem de jar files ou at cria o de Javadoc est o nos limites de atua o do Ant O Ant esta ligado aos conceitos de integra o continua muito comum na metodologia recurso designado O caminho especifica o local geralmente num sistema de ficheiros onde se encontra o recurso dentro do servidor 24 Programa o eXtrema do ingl s eXtre
62. http www training com br lpmaia pub prog oo htm ltimo acesso em Julho de 2006 RUMBAUCH James BLAHA Michael PREMERLANI Willian EDDY Frederick LORENSEN Willian Modelagem e Projetos Baseados em Objetos Editora Campus Rio de Janeiro 1994 GOSLING James MCGILTON Henry The Java Language Environment White Paper 1996 In http java sun com doc language environment ltimo acesso em Julho de 2006 HORSTMANN Cay S CORNELL Gary Core Java Volume I Fundamentos Pearson Makron Books S o Paulo 2003 HORSTMANN Cay S CORNELL Gary Core Java Volume II Recursos Avan ados Pearson Makron Books S o Paulo 2004 MATHIAS Eder Introdu o Linguagem de Programa o Java UNIJU Departamento de Tecnologia 2004 72 LEMOS Andr S 4 Maquina Crian a O Ensino Fundamental em uma Cultura Tecnol gica In Contexto Educa o Revista de Educaci n em Am rica Latina y el Caribe Ci ncias Tecnologia e Educa o Ano 18 No 69 p 85 112 Uniju 2003 JOHNSTON Wesley M HANNA J Paul MILLIAR Richard J Advanced in DataFlow Programming Languages In ACM Computing Surveys Vol 36 No 1 p 1 34 University of Ulster 2004 ZANIN Fabio A TIBOLA Leandro R LANGSCH Carla W K CODE UFRGS Instituto de Informatica Programa de P s Gradua o em Computa o 1998 PILLA Maur cio L Um Simulador de Arquitetura DataFlow UFRGS Instituto de Inform tica Prog
63. imagens associadas e poss vel at ter controle de como s o desenhados os m nimos detalhes de apresenta o Pretend amos ent o integrar ao n cleo do ambiente de programa o visual dataflow projetado e quase que em sua totalidade implementado em trabalho apresentado disciplina de Laborat rio I Mayer 2005 aquela parte do sistema respons vel pelo representa o visual tamb m de execu o dos poss veis fluxos de dados entre os objetos componentes de um diagrama proposto Para tanto que usando a tecnologia Swing que nos dispota pelo Java que desenvolvermos o Gabrielus Abaixo segue Diagrama de Componentes representando o conjunto de componentes e respectivas depend ncias para o Gabrielus realizado no projeto 267 i A da disciplina de 1 oe ea t Laborat rio de sistemas Junho i qa a i E lt lt package gt gt 2006 LJ lt lt package gt gt pre ae aa t br com viniciusmayer gabrielus diagram F Cy br com viniciusmayer gabrielus editor 1 4 EL H CO librarie O package gt 1 internationalization properties gt gt c violetjar 777777 br com viniciusmayer gabrielus form Pacotes aproveitados Ly DataFlowEditorStrings LH m do desenvolvimento 2 7 0 e i 7 E lt project gt labi i a 1 B lt lt internationalization properties gt LI lt
64. ivibox big E SEC joe gt O primeiro par metro da fun o o nome da camada onde qual ser aplicado o efeito O segundo par metro uma palavra chave que indica o tipo de arredondamento que ser feito vide tabela abaixo No exemplo acima aplicou se o arredondamento de tamanho maior big na camada box Pode se ainda aplicar o efeito em v rias camadas separando as por v rgula Da mesma forma pode se aplicar utilizando v rias palavras chaves separando as por espa o 42 Site do Nifty Corners Cube http pro html it niftycube 63 Palavra chave Significado El canto superior esquerdo Es canto superior direito b1 canto inferior esquerdo br canto inferior direito top cantos superiores bottom cantos inferiores lett cantos da esquerda right cantos da direita all padr o todos os cantos none nenhum dos cantos tamanho dos cantos pequenos small 2px tamanho dos cantos normal normal padr o 5px tamanho dos cantos maior big 10px aplica transpar ncia do canto transparent para o preenchimento interno veja um exemplo para ser aplicado quando uma fixed height altura height fixa e definida no CSS Tabela 01 Relac o de palavras chave versus significado dos atributos do Nifty Corners Cube S o in meras as configura es poss veis que o Nyfty Corners Cube nos proporciona e numa ltima vers o do fr
65. ivo para outro dependendo claro dos resultados apresentados nos est gios anteriores 33 Thread obj String resp result boolean O PRequest PResponse getResult boolean setResult b boolean void Diagrama 12 Diagrama de Classes detalhado do pacote br com viniciusmayer gabrielus protocol Para os objetos que pretenderem atender chamadas de pr requisi es requisi es ou mesmo transfer ncias definimos com j mencionado uma interface PResponse A implementa o dos m todos definidos nesta interface para cada objeto em especial a principal raz o de ser de cada componente j que justamente esta implementa o que d ao componente a sua identidade para os objetos que precisar o enviar pedidos de pr requisi o requisi o e ou transfer ncia definimos a interface PRequest e a implementa o dos m todos definidos em PRequest nada mais do que o chamamento dos m todos de resposta no s objeto s que estiver em definidos como sa da s do componente requisitante 3 2 6 2 Threads A classe abstrata TThread a que define o modelo de classes do m dulo de multithreading do prot tipo H nela v rias constru es importantissimas para o entendimento e o que de prop sito maior funcionamento do paralelismo no protocolo de comunica o Temos portanto a extens o da classe Thread a implementa o da interface PRequest do m dulo do protocolo de comunica o
66. l ao leigo sem o que n o h possibilidade de que decis es importantes que cabem somente aos pacientes e seus familiares sejam tomadas luz da raz o Da mesma maneira importante que o conhecimento da ci ncia da computa o e da engenharia de software n o seja um mist rio para o usu rio de computadores Infelizmente trata se de uma tecnologia que se diferencia justamente por produzir mist rios com muita facilidade 2 2 Objetivos Temos como objetivos portanto a defini o da arquitetura de desenvolvimento do prot tipo implementar o prot tipo propriamente dito e dentro do poss vel implementar tamb m alguns um ou mais objetos os tokens o reposit rio a interface dentre os demais os mais simples para que possamos comprovar a robustes e simplicidade da arquitetura definida assim como tamb m validar a implementa o do editor em si Em seguinda pretendemos integrar o trabalho desenvolvido em trabalho apresentado a disciplina de Laborat rio de Sistemas I n cleo de ambiente de programa o visual DataFlow projetado ao editor desenvolvido e tamb m j come ar com os trabalhos que dizem respeito as anima es dos diagramas ou seja a execu o dos poss veis fluxos de dados entre os objetos componentes de um diagrama proposto Entendemos como n cleo de um ambiente de programa o visual DataFlow a parte de um sistema respons vel pelo controle dos poss veis fluxos de dados entre os objetos component
67. la o Se a aplica o n o estiver na m quina do cliente o Java Web Start ir automaticamente baixar todos os arquivos necess rios para a execu o da aplica o Se existir alguma vers o da aplica o na m quina do cliente esta aplica o estar sempre pronta para ser executada a qualquer hora que o usu rio necessitar atrav s 46 de um icone em seu desktop ou atrav s de um link em um Web Browser Independente da forma que a aplica o for invocada uma vers o mais recente da aplica o sempre estar presente para o usu rio Java Web Start utiliza a tecnologia Java Network Launching Protocol amp APP JNLP A tecnologia JNLP define al m de outras coisas um formato padr o de arquivos arquivo JNLP que descreve como a aplica o ser executada Java Web Start suporta e Versionamento e atualiza o incremental e Opera o off line e Integra o com desktop Sandboxing ambiente protegido com restri es de acesso a disco ou recurso de rede Code signing e Instala o autom tica de JRE e pacotes adicionais da aplica o O Java Web Start utiliza um arquivo JNLP que descreve como a aplica o ser executada Atrav s de uma p gina Web com um ink para este arquivos JNLP o usu rio com um simples clique ativa o Java Web Start O Java Web Start ir ent o verificar se todos os recursos necess rios para a execu o da aplica o est o dispon veis na m quina do cliente caso seja
68. luel gt lt applet desc gt 4 6 Site O site do projeto foi desenvolvido exclusivamente para a disponiliza o do Gabrielus via Java Web Start Al m claro da tecnologia do Java Web Start o site foi desenvolvido utilizando se o que havia de melhor no que diz respeito aos padr es de desenvolvimento web como por exemplo Tableless CSS e frameworks que simplificam e padronizam tarefas um tanto quanto complicadas de se resolver padronizadamente a exemplo do arredondamentos de um conteiner do site Abaixo apresentamos um screenshot do site do projeto onde podemos ver a parte do cabe alho com o acesso ao aplicativo via Java Web Start clique na logo do Gabrielus o menu do site e o conteiner onde estar sendo disposto o conte do do menu acessado 60 Gabrielus Project s Site Mozilla Firefox File Edit View Go Bookmarks Tools Help a gt Y A http localhost 3080 gabrielus www 7 O ao EL Pv1Gmail Inbo subversion Pesquisa Google Calendar _ GUJ Noticias Forum Usando o Subversion W Apache Ant Wikipedia Gabrielus Project s Site 3 Home SN Ambiente Desktop Ambiente WEB Qual a arquitetura do Gabrielus Os frameworks que foram utilizados O que ele by Andr Souza Lemos Our goal is to develop an environment for dataflow visual programming based on a simple dataflow language or notation also developed within the sc
69. m dulos a o m dulo do Protocolo de Comunica o entre Objetos respons vel pela din mica de conversa o entre os objetos b o m dulo do Esquema Multithreadig do Sistema respons vel por todo o processamento do m dulo do protocolo c o m dulo de Modelo de Objetos onde organizamos toda a hierarquia de classes do sistema e d o m dulo dos Objetos onde finalmente apresentamos os objetos como componentes do n cleo deste ambiente de programa o visual 2 3 1 Protocolo de Comunica o entre Objetos O m dulo do protocolo de comunica o entre objetos define portanto de que forma se realizar a comunica o entre os objetos ativos do sistema A comunica o que desejamos que aconte a entre estes objetos ativos nada mais do que a transfer ncia do conte do de um objeto para outro Os componentes que est o sendo considerados ativos portanto s o o Reposit rio e a Porta de entrada o reposit rio porque pode tanto querer transferir um objeto Token como tamb m receber objetos e a Porta de Entrada pois embora n o seja capaz de receber objetos estar gerando objetos e consequentemente querendo transferi los Ent o estamos entendendo por objeto ativo todo aquele componente do sistema que capaz de iniciar uma nova fase de transfer ncia de tokens entre os objetos do sistema ou seja queira fazer com que este conte do o Token flua ou continue fluindo por entre os objetos constituintes do sistema Baseamos o
70. m necessariamente nenhuma rela o direta com o pacote nome do pacote apesar dos arquivos do primeiro estarem num subdiret rio do diret rio onde est o os arquivos do segundo O fato de que o primeiro pacote referenciado no segundo apenas um acaso do exemplo O Gabrielus foi todo organizado em m dulos ou como estaremos tratando em pacotes onde separamos as classes e ou arquivos que mantem responsabilidades semelhantes para que pudessemos tem al m de uma codifica o mais simples uma vis o mais clara de como est arquiteturado o Gabrielus quando de uma vis o mais macro do mesmo Segue nos pr ximos itens deste se o do trabalho uma explana o com rela o aos pacotes que at ent o compunham o Gabrielus br com viniciusmayer gabrielus editor br com viniciusmayer gabrielus framework br com viniciusmayer gabrielus diagram com viniciusmayer gabrielus form br com viniciusmayer gabrielus animation br com viniciusmayer gabrielu n protocol e 0 o H br com viniciusmayer gabrielus thread 3 2 1 Editor O pacote br com viniciusmayer gabrielus editor respons vel pela constru o do aplicativo em si tem depend ncia de dois arquivos de propriedades de dois outros pacotes br com viniciusmayer gabrielus framework br com viniciusmayer gabrielus diagram e do framework violet jar 20 Os arquivos de propriedades s o em suma os arquivos de int
71. ma estruturada O Tiles vem integrado e f cil de usar com o Struts ficando acess vel atrav s de uma taglib embutida Sites baseados no Tiles s o montados com pe as ou ladrilhos Assim voc pode modelar uma vez e replicar o layout em todo um grupo de p ginas ou mesmo em todas as p ginas de sua aplica o Silva 2006 E b AJAX o uso sistem tico de JavaScript e XML e derivados para tornar a navega o mais interativo com o usu rio utilizando se de solicita es ass ncronas de informa es AJAX n o somente um novo modelo tamb m uma iniciativa na constru o de aplica es web mais din micas e criativas AJAX n o uma tecnologia s o realmente v rias tecnologias trabalhando juntas cada uma fazendo sua parte oferecendo novas funcionalidades Destas duas tecnologias Tiles e AJAX o Tiles seria ent o uma tecnologia mais voltada para sites de grande porte no n vel de portais a exemplo do pr prio site da UNIJUI e tamb m do n vel de um e commerce por exemplo a estilo do Submarino J o AJAX uma tecnologia que no nosso entendimento est mais perto da realidade do site do nosso projeto que estamos desenvolvendo e portanto sugerimos que seja usada tal tecnologia para o desenvolvimento do mecanismo do menu do site do Gabrielus Vale tamb m dizer a id ia do AJAX utilizar JavaScript para transformar suas p ginas em aplica es de modo que n o precise recarregar a tela cada vez que
72. me Programming ou simplesmente XP uma metodologia gil para equipas pequenas e m dias e que ir o desenvolver software com requisitos vagos e em constante mudan a Para isso adota a estrat gia de constante acompanhamento e realiza o de v rios pequenos ajustes durante o desenvolvimento de software A metodologia XP promove como seus quatro valores fundamentais comunica o simplicidade feedback e coragem A partir desses valores possui como princ pios b sicos feedback r pido assumir simplicidade mudan as incrementais abra ar mudan as e trabalho de qualidade 42 e sua import ncia o fez ser incorporado em importantes IDEs do mercado como Eclipse e ou o NetBeans O Ant tem entre suas maiores virtudes o fato de ser independente de Sistema Operacional SO pois feito em Java Ant al m de ser independente de SO tamb m independente de IDE e est integrado nas principais IDEs de desenvolvimento que encontramos hoje a disposi o hoje A ferramenta Ant tem a capacidade de automatizar diversas tarefas que fazem parte do ciclo de vida de desenvolvimento de software Outros exemplos al m dos j citados s o a capacidade de manipula o de diret rios automatiza o de testes e controle de vers o Ant tamb m pode ser til para programa o em linguagem C poss vel elaborar tasks complementares que fazem desde D gera o de c digo para integra o de Java e C atrav s da API JNI at a possibilidade
73. n checkout https gabrielus dev java net svn gabrielus trunk gabrielus username viniciusmayer Onde svn checkout a o que voc deseja executar No caso criar uma c pia local do projeto https gabrielus dev java net svn gabrielus trunk Link para acesso direto ao servidor Subversion observe que usada conex o segura via protocolo https gabrielus O nome da pasta que ser na m quina local com o conte do que ser carregado do servidor Subverion e username viniciusmayer O nome do usu rio que estar conectando ao servidor Subversion para fazer uma c pia do projeto para a m quina local Este acesso ou melhor este usu rio criado pelo mantenedor do projeto e o acesso exclusivo deste usu rio que s o criados cujas permiss es ao reposit rio Subversion s o dadas 4 5 2 Configura o do Ant 51 O Ant trabalha com arquivos XML chamados de buildfiles eles s o interpretados pelo ANT para que ele possa executar as tarefas que est o descritas nesses arquivos O buildfile um arquivo XML geralmente chamado de build xm1 este arquivo est normalmente organizado desta maneira PROS propetyl lt propety2 gt lt task gt lt target1 gt lt target2 gt lt task gt lt target gt lt project gt e Um project a tag raiz do build xml ele representa todo o projeto e s pode existir um por buildfile
74. nosso protocolo de comunica o em um protocolo muito simples o modelo de solicita o resposta request response Este protocolo a id ia que h por tr s das estruturas mais comuns de sistemas distribu dos do tipo cliente servidor O cliente envia uma mensagem ao servidor solicitando algum tipo de servi o como no nosso caso uma requisi o de transfer ncia o servidor faz o trabalho e envia para o cliente os dados solicitados Podemos ent o fazer uma analogia desta din mica com os nossos componentes onde o cliente seria um objeto um Reposit rio por exemplo e o servidor poderia ser qualquer outro objeto inclusive um Reposit rio E isso caracter stico desse tipo de estrutura de servi o pois tanto o cliente quanto o servidor mant m o mesmo tipo de implementa o e portanto tanto os clientes quanto os servidores podem executar processos como clientes 10 2 3 2 Esquema Multithreading do N cleo O esquema multithreading do n cleo do prot tipo de ambiente de programa o visual foi modelado da seguinte maneira a uma classe abstrata TThread que define a estrutura respons vel por manter todos os dados pertinentes ao processamento de transfer ncias b uma classe TDataFlow que ser a respons vel por disparar e manter todos os processamentos gerados pelos objetos ditos ativos Reposit rios e Portas de Entrada TPreRequest respons vel pela manuten o dos dados relacionados ao processamento de um pedido de p
75. nte Java do arquivo class gt lt mkdir dir classes gt lt javac srcdir destdir classes gt lt target gt lt target name Jar depends compile description cria o arquivo Jar para a aplicacao gt lt jar destfile gabrielus jar gt lt fileset dir classes includes class gt lt manifest gt lt attribute name Main Class value br com viniciusmayer gabrielus editor DataFlowEd 1 0 gt lt manifest gt lt jar gt lt target gt lt project gt Neste arquivo de exemplo de build xml do Gabrielus demostramos como podemos automatizar o processo de build do projeto usando o Ant Podemos ver neste exemplo como gerado o arquivo jar que vir a ser o arquivo a ser acessado via Java Web Start pelo usu rio que estiver navegando no site Inclusive neste exemplo de arquivo de build do Ant n o mostramos como o arquivo jnlp que descreve com o Java Web Start deve agir para conseguir iniciar o 53 aplicativo gerado At o momento tal funcionalidade n o havia sido implementada e portanto estamos criando o arquivo jnlp manualmente Pretendemos assim que poss vel implementar mais esta funcionalidade e aproveitar ainda mais as facilidades que esta ferramenta o Apache Ant 4 5 3 Configura o do Script Shell Antes de saber o que um script em shell importante saber antes o que um Shell Na linha de comandos de um shell podemos utilizar diversos comandos um ap s o
76. ntent o Object void saveFile graph Graph out OutputStream void setSlice l long void getContentQ Object savelmage graph Graph out OutputStream format String void getSliceQ long setType b byte void showAboutDialogQ void lookUpClockO byte getTyped byte exitQ void rund void void time byte content Object slice long type byte Diagrama 03 Diagrama de Classes de vis o panor mica do pacote br com viniciusmayer gabrielus framework O pacote br com viniciusmayer gabrielus animation um dos pacotes que tamb m se relacionam diretamente com o pacote ramework cujo funcionamento s garantido uma vez que este o pacote br com viniciusmayer gabrielus animation esteja tamb m em funcionamento O pacote br com viniciusmayer gabrielus animation o que se responsabiliza pela configura o das anima es que estar o acontecendo na camada de vis o do nosso aplicativo Uma vez que framework est fazendo todo o processamento propriamente dito das anima es e dando as coordenadas para a movimenta o dos objetos na camada de vis o faz se necess rio que esteja tudo OK com o pacote br com viniciusmayer gabrielus animation para que a representa o gr fica da anima o seja executada com sucesso e corretamente Da mesma forma h dependencias tamb m por parte do pac
77. nto do software e tamb m no limite f sico do hardware Geralmente um reposit rio possui um endere o l gico que permite a conex o do cliente Esse endere o pode ser um conjunto IP porta uma URL um caminho do sistema de 22 Um soquete do ingl s socket generalizado uma tomada Designa uma cavidade ou regi o usada para ligar algum artif cio espec fico Especificamente em computa o um soquete pode ser usado em liga es de redes de computadores para um fim de um elo bidirecional de comunica o entre dois programas A interface padronizada de soquetes surgiu originalmente no sistema operacional Unix BSD Berkeley Software Distribution portanto eles s o muitas vezes chamados de Berkeley Sockets 23 Uma URL de Universal Resource Locator em portugu s significa Localizador Uniforme de Recursos o endere o de um recurso um ficheiro uma impressora etc dispon vel em uma rede seja a Internet ou uma rede corporativa uma intranet Uma URL tem a seguinte estrutura protocolo m quina caminho recurso O protocolo poder ser HTTP FTP entre outros A m quina designa o servidor que disponibiliza o documento ou 41 arquivos entre outros Cada desenvolvedor possui em sua m quina uma c pia local em ingl s working copy somente da ltima vers o de cada documento Essa c pia local geralmente feita num sistema de arquivos simples A cada altera o relevante do desenvolvedor necess rio atualizar as in
78. o de pacote em Java em resumo cada pacote representado por um diret rio contendo v rios arquivos com o mesmo cabe rio indicando o nome do pacote onde cada arquivo define uma ou mais classes que fazem parte do pacote Al m disso na implementa o atual de Java o nome de um pacote deve ser parte do nome do seu diret rio associado Usando o sistema UNIX como exemplo podemos definir um pacote chamado nome do pacote contendo dois arquivos que est o no diret rio home viniciusmayer projects example nome do pacote 18 UNIX um sistema operativo ou sistema operacional port til multitarefa e multiutilisador originalmente criado por um grupo de programadores da AT amp T dos Bell Labs Atualmente UNIX ou NIX o nome dado a uma grande fam lia de Sistemas Operativos que partilham muitos dos conceitos dos Sistemas UNIX originais sendo todos eles desenvolvidos em torno de standards como o POSIX Portable Operating System Interface e outros 19 Assumindo que o compilador Java foi informado para procurar pacotes embaixo do diret rio home viniciusmayer projects example Apesar de um pacote corresponder a um diret rio o conceito de subdiret rio n o implica no conceito de subpacote isto se um diret rio cont m subdiret rios estes n o correspondem a subpacotes De fato o conceito de subpacote n o existe em Java Por exemplo um pacote chamado nome do pacote subpacote n o te
79. oi reaproveitado do framework violet jar e est sendo usuada aqui apenas para demonstra o de como acontece a disponibiliza o e ou o processo inverso de uma esp cie de diagrama no editor Em fim feito com que o frame se torno vis vel ao usu rio e mostrado em seguida a tela de inicializa o do Gabrielus que tamb m poder ser acessada pelo menu Ajuda e em seguida na op o Sobre L encontramos informa es com rela o a vers o do Gabrielus que est em execu o qual a data desta compila o vers o os autores e tamb m quanto a licen a do Gabrielus Esta licen a numa tradu o n o oficial da original para o portugu s do Brasil poder ser acessada via menu Ajuda e em seguida na op o Licen a 3 2 2 Framework O pacote br com viniciusmayer gabrielus framework est relacionado com os seguintes arquivos pacotes ou frameworks DataFlowEditorStrings Arquivo de internacionaliza o licence txt Arquivo de texto que mant m a licen a do Gabrielus gabrielus png Arquivo de imagem da logo do Gabrielus br com viniciusmayer gabrielus animation Pacote respons vel pela parte de anima o br com viniciusmayer gabrielus protocol Pacote respons vel pela parte de protocolo de comunica o entre objetos br com viniciusmayer gabrielus threads Pacote respons vel pelo processamento multithreading e violet jar Framework Violet No arquivo DataFlowEdi
80. ope of this project The definitions expressed here are related to the long term objectives of this project the present stage being an initial prototype with a very limited set of features The notation is not supposed to become a lingua franca not pecific language but the suggestion and the experience of a new type of tool for expression without boundaries Based on this experience many others can be devised in the future It is for instance the kind of knowledge of computer science that could be taught in elementary school apart from the usual Wizard of Oz like programs for computers in education For the first time the burden will be on the implementational aspect perhaps actualization would be a better term 7 not on systems analysis and or design It should hopefully be a much smaller burden In this notation sketches are not only acceptable as an initial attempt they are precisely the substance of design from which operational systems are just condensed forms Syntactical variations will be accepted for as long as they continue to make sense and the supporting mechanisms will be continuously adapted accordingly It is important to notice that any formalized stable version of a working diagram should not be seen as an end in itself or the conclusion of a supposedly ary process but only as an actualization of a virtuality a movement that implies some loss of potentiality There will be dialects heterogeneous colloquial forms altemative us
81. ord Wide Web Consortium http www w3 org ou em portugu s algo a respeito da W3C na Wikipedia http pt wikipedia org wiki W3C 62 Sua necessidade veio do fato do HTML aos poucos ter deixado de ser usado apenas para cria o de conte do na web e portanto havia uma mistura de formata o e conte do textual dentro do c digo de uma mesma p gina Contudo na cria o de um grande portal fica quase imposs vel manter uma identidade visual bem como a produtividade do desenvolvedor nesse ponto que entra o CSS As especifica es do CSS podem ser obtidas no site da W3C um cons rcio de diversas empresas que buscam estabelecer padr es para a internet 4 6 3 Framework Nifty Corners Cube Para quem trabalha com a dobradinha xHTML e CSS sabe da dor de cabe a que para arredondar os quatro cantos de um bloco container de um site No m nimo voc teria que usar quatro elementos com um background para cada canto Pois bem existe um framework alternativo para resolver este probleminha do arredondamento dos cantos de um conteiner de um site O framework que nos referimos o Nifty Corners Cube cujo funcionamento muito interessante Em primeiro lugar voc n o precisa de imagens para fazer o arredondamento O seu funcionamento um tanto quanto simples no evento onLoad da janela feito a chamada a fun o do Nifty Exemplo lt script type text javascript gt window onload function Nitty d
82. ork RertangularNode DataFlowEditorFrame defaultExtension String cloneQ Object maxRecentFiles int DEFAULT MAX RECENT FILES translate dx double dy double void FRAME GAP int 20 contains p Point2D boolean ESTIMATED FRAMES int 5 getBoundsQ Rectangle2D DEFAULT MAX RECENT FILES int 5 setBounds newBounds Rectangle2D void GROW SCALE FACTOR double Math sqrt 2 layout g Graph g2 Graphics2D grid Grid void getConnectionPoint d Direction Point2D writeObject out ObjectOutputStream void writeRectangularShape out ObjectOutputStream s RectangularShape void readObject in ObjectinputStream void readRectangularShape in ObjectInputStream s RectangularShape void getShaped Shape DataFlowEditorFrame appClass Class changeLookAndFeel lafName String void addGraphType resourceName String graphClass Class void readArgs args String void open name String void addinternalFrame iframe JInternalFrame void setTitleQ void addRecentFile newFile String void buildRecentFilesMenud void DataFlowClock DataFlowToken openFileQ void saved void saveAsQ void void DataFlowClockQ DataFlowToken printQ void setTime b byte void DataFlowTokento Object read n InputStream Graph getTimeQ byte setCo
83. os tais como tomcat5 exe tomcat5w exe comum nas vers es para Linux encontrarmos neste diret rio os arquivos sh necess rios para a execu o do servidor common Classes dispon veis tanto para o funcionamento interno do servidor quanto s diversas aplica es web instaladas Geralmente este diret rio cont m subdiret rios chamados classes 1ib Classes colocadas nestes subdiret rios estar o dispon veis tanto para o Tomcat quanto para todas as aplica es web rodando no servidor Classes j compiladas devem ser colocadas no diret rio classes arquivos JAR devem ser colocados no diret rio 1ib Lembre se de que todas as classes e JARs do diret rio common estar o acess veis a todas as aplica es conf Cont m arquivos de configura o Dentre os v rios arquivos neste diret rio os mais importantes s o server xml tomcat users xml web xml O arquivo server xml o arquivo de configura o principal do Tomcat E usado para 45 configurar logs conex es com outros servidores a porta e host na qual o servidor est sendo executado e o local dos arquivos de cada aplica o web O arquivo tomcat users xml a base de dados padr o para a autentica o de usu rios Se um dia voc esquecer a senha que voc definiu na hora da instala o do Tomcat s abrir este arquivo e recuper la O nome e local deste arquivo pode ser alterado no arquivo server xml O arquivo web xml o descritor de instala
84. ositaryNoded draw g2 Graphics2D void DataFlowinterfaceNode draw g2 Graphics2D void layout g Graph g2 Graphics2D grid Grid void addNode n Node Point2D boolean setName newvalue MultiLineString void getName MultiLineString cloned Object layout g Graph g2 Graphics2D grid Grid void addNode n Node p Point2D boolean setName newValue MultiLineString void getName MultiLineString cloned Object MultiLineString Diagrama 08 Diagrama de Classes detalhado do pacote viniciusmayer gabrielus form Cada objeto implementa a sua pr pria representa o visual e em s ntese todos os objetos que forem do tipo ativo estar o vinculados a esta estrutura pois ele precis o necessariamente serem capazes de encapsular um objeto dentro deles que poder ser um token branco ou um token preto Os demais n o precisar o ter esta capacidade pois o mais interessante nestes objetos ser a implementa o do protocolo de comunica o Quanto as anima es o posicionamento no panel de uma representa o visual de um objeto dito ativo ser o inicio ou o fim da anima o os demais apenas para que possamos desenhar o caminho a ser percorrido pelo token enquanto ele estiver viajando pelo diagrama do seu reposit rio origem coordenadas de inicio da anima o at o seu reposit rio destino coordenad
85. ote framework dos pacotes br com viniciusmayer gabrielus protocol br com viniciusmayer gabrielus threads Este pacotes est o tamb m diretamente envolvidos com o pacote framework por serem os 25 respons veis pelas orienta o necess rias execu o ou n o de alguma anima o Enquanto o pacote br com viniciusmayer gabrielus protocol vare a representa o interna do diagrama desenhado na camada de vis o e define quais os processos de anima o que dever o necessariamente acontecer ap s terminada a varedura pacote br com viniciusmayer gabrielus threads estar sendo responsabilizado pelo processamento em paralelo das anima es que por ventura tiverem sido definidas pelo processamento realizado pelo pacote br com viniciusmayer gabrielus protocol JDesktopPane preferences ArrayList E recentrifes DataFlowToken content Object type byte gtoken DataFlowTokend DataFlowToken o Object getResult boolean setContent o Object void setResult b boolean void getContent Object TThread 4 sinal obj String result boolean DataFlowEditorFrame defaultExtension String maxRecentFiles int DEFAULT MAX RECENT FILES FRAME GAP int 20 ESTIMATED FRAMES int 5 DEFAULT MAX RECENT FILES int 5 GROW SCALE FACTOR double Math sart 2 setType b byte void gerTyuneo
86. ow language or notation also developed within the scope of this project The definitions expressed here are related to the long term objectives of this project the present stage being an initial prototype with a very limited set of features ot supposed to become a lingua franca not specific language but the suggestion and the experience of a new type of tool for expression without boundaries Based on this others can be devised in the future Tt is for gt the kind of knowledge of computer science that could be taught in elementary school apart from the usual Wizard of Oz like ition For the first time the burden will be on the implementational aspect 7 perhaps actualization would be a better term 7 not on systems analysis and or design It the substance of design from which operational systems are just will have to be continuously adapted accordingly It is important to as an actualization of a virtuality a qi to those occurring in ordinary eventually formalized hardwired into an individua lect Y a dis achine like realization creating a distance between our proposal and computational ortho is have been traditionally promoted to memories of representations without any jus 3 0 Figure 1 A token can move from one container to another For us computational systems are composed of simples elements of a few different kinds the substance of which we will not care to establish or
87. r requisi o d TRequest respons vel pela manuten o dos dados relacionados ao processamento de um pedido de requisi o TTransfer a classe que ser respons vel pelo gerenciamento de transfer ncia de Tokens entre objetos 2 3 3 Modelo de Objetos e Objetos O m dulo de modelo de objeto aquele m dulo que faz a defini o de todas as classes que se encontram um n vel acima daquelas classes que estamos nos referindo como folhas ou seja aqueles que representam de fato a implementa o de um componente do n cleo como por exemplo um reposit rio ou ainda um multiplicador J o m dulo dos objetos estar apresentando as especifica es das classes que definem aqueles objetos que ser o na real os componentes do n cleo ou seja aquelas classes que estar o implementando as funcionalidades esperadas por cada uma das formas apresentadas pela nota o diagram tica 2 3 4 Considera es Partindo da an lise dos objetivos que nos propomos a alcan ar no trabalho desenvolvido na disciplina de Laborat rio de Sistemas I com o que foi ent o desenvolvido e estamos agora fazendo uso devemos dizer que o trabalho desenvolvido na elabora o do projeto do n cleo do ambiente de programa o visual dataflow e a sua implementa o foram de fato bastante importantes Tanto que de todo o projeto que foi desenvolvido e da parte que diz respeito a 11 implementa o dos componentes do n cleo m dulo
88. r do preenchimento de um objeto espec fico entre outros DataFlowBlackToken viniciusmayer gabrielus DataFlowRepositoryNode DEFAULT DIAMETER int 30 DEFAULT WIDTH int 100 DataFlowBlackTokenQ getConnectionPoint d Direction Point2D draw g2 Graphics2D void Shi DataFlowWriteToken DEFAULT HEIGHT int 100 DEFAULT DIAMETER int 30 DataFlowWriteTokend getConnectionPoint d Direction Point2D draw g2 Graphics2D void Si DataFlowRepositoryNodeQ draw g2 Graphics2D void layout g Graph g2 Graphics2D grid Grid void addNode n Node Point2D boolean setName newvalue MultiLineString void MultiLineString Obie DataFlowinterfaceNode DEFAULT WIDTH int 100 DEFAULT HEIGHT int 100 DataFlowinterfaceNodeQ draw g2 Graphics2D void layout g Graph g2 Graphics2D grid Grid void addNode n Node Point2D boolean setName newValue MultiLineString void getName MultiLineString oneh Obis Diagrama 07 Diagrama de Classes de vis o panor mica do pacote viniciusmayer gabrielus form Abaixo segue um diagrama de classes detalhado do pacote form Note que para os objetos que j est o dispon veis na barra de objetos do editor de diagramas dataflow Reposit rio e Interface h o uso de apenas duas classes externas classes do f
89. rama de P s Gradua o em Computa o 1999 RUMBAUCH James BOOCH Grady JACOBSON Ivar UML Guia do Usu rio Campus 2000 Rio de Janeiro CERUZZI Paul E history of modern computing Cambridge Massachusetts MIT Press 1998 NARDI Bonnie A small matter of programming perspectives on end user computing Cambridge Massachusetts MIT Press 1993 TANENBAUM Andrew S Sistemas Operacionais Modernos LTC Editora Rio de Janeiro 1992 SILVA Edgar A Struts em Peda os Reutilize Design em JSPs com Tiles JavaMagazine Edi o 19 Ano III MAYER E Vinicius D Prot tipo de N cleo de Ambiente de Programa o Visual DataFlow Trabalho apresentado como requisito aprova o na disciplina de Laborat rio de Sistemas I sob orienta o do Prof Andr Souza Lemos DETEC Departamento de Tecnologia UNIJUI Universidade Regional do Noroeste do Estado do Rio Grande do Sul Junho de 2005 STEIL Rafael Introdu o a programa o gr fica em Java com Swing 73 http www guj com br java tutorial artigo 38 1 guj ltimo acesso em Julho de 2006 HAASE Chet Timing is Everything http today java net lpt a 168 ltimo acesso em Julho de 2006 HAASE Chet Time Again http today java net Ipt a 274 ltimo acesso em Julho de 2006 WIKIPEDIA Enciclop dia On Line Livre http pt wikipedia org ltimo acesso em Julho de 2006 74 Espa o para Anota es 75
90. ramework violet jar e que todos herd o de RectangularNode ou seja todos h o de carregar as caracter sticas internas de um nodo retangular em ingl s RectangularNode como por exemplo ter a capacidade de receber um nome mas n o necessariamente ter o herdar o a representa o visual do mesmo 29 RectangularNode clone Object translate dx double dy double void contains p Point2D boolean DataFlowWriteToken getBounds Rectangle2D setBounds newBounds Rectangle2D void EAT to layout g Graph 92 Graphics2D grid Grid void DataFlowWriteTokenQ getConnectionPoint d Direction Point2D getConnectionPoint d Direction Point2D writeObject out ObjectOutputStream void draw g2 Graphics2D void writeRectangularShape out ObjectOutputStream s RectangularShape void getShape Shape readObject in ObjectinputStream void readRectanqularShape in ObjectInputStream s RectangularShape void getShaped Shape DataFlowBlackToken DEFAULT DIAMETER int 30 DataFlowBlackTokend getConnectionPoint d Direction Point2D draw g2 Graphics2D void getShaped Shape DataFlowRepositoryNode DEFAULT WIDTH int 100 DEFAULT HEIGHT int 100 DataFlowinterfaceNode DEFAULT WIDTH int 100 DEFAULT HEIGHT int 100 DataFlowRep
91. rojeto gabrielus jar aplicativo gabrielus jnlp arquivo para acesso via Java Web Start e as bibliotecas violet jar timingframework jar nos seus devidos lugares e este seria o primeiro momento de uma atualiza o do aplicativo que disposto no site Em seguida viria o processo de 48 inicializa o e ou reinicializa o do servidor web Apache Tomcat para disponibiliza o do site do projeto e que o mais importante a disponibiliza o do Gabrielus via Java Web Start Para estas etapas momentos da atualiza o do aplicativo que disponibilizado via Java Web Start no site do projeto que criamos um Script Shell que aumotamiza para n s estes processos Conforme mostrado no diagrama de componentes acima o script depende da carga dos fontes atualizados do Java Net gabrielus dev java net e do processamento realizado pelo apache ant para poder disponibilizar com sucesso uma nova vers o do aplicativo no site do projeto Vale lembrar que uma atualiza o no site tamb m depende de todo o processo envolvido com a atualiza o do aplicativo que disposto no site uma vez que o pr prio site tamb m est versionado em gabrielus dev java net preciso carregar de l a ltima vers o dos arquivos que foram modificados 4 5 1 Configura o do Subversion Depois de baixado o arquivo subversion 1 3 2 tar gz vamos instal lo aten vers On Cj Gel susversilom 1 SO
92. s como o do Esquema de Multithreading assim como o m dulo do Protocolo de Comunica o foram cem por cento aproveitados Apenas os m dulos de Modelo de Objetos e o m dulo de Objetos que devida a arquitetura definida para o prot tipo que n o conseguiram ser aproveitadas 12 3 Ambiente Desktop Nas primeiras vers es do Java a nica forma de fazer programas gr ficos era atrav s da AWT uma biblioteca de baixo n vel que dependia de c digo nativo da plataforma onde rodava Ela traz alguns problemas de compatibilidade entre as plataformas fazendo que nem sempre o programa tinha apar ncia desejada em todos os sistemas operacionais sendo tamb m mais dif cil de ser usada Para suprir as necessidades cada vez mais frequentes de uma API mais est vel e f cil de usar o Swing foi criado como uma extens o do Java a partir da vers o 1 2 Swing fornece componentes de mais alto n vel possibilitando assim uma melhor compatibilidade entre os v rios sistemas onde Java roda Ao contr rio da AWT Swing n o cont m uma nica linha de c digo nativo e permite que as aplica es tenham diferentes tipos de visuais em ingl s skins os chamados Look and Feel J com AWT isso n o poss vel tendo todos os programas a apar ncia da plataforma onde est o rodando Steil 2006 As vantagens do Swing n o param por a H uma enorme gama de controles extras dispon veis tais como reas de texto que nativamente podem mos
93. s n o lineares a partir da declara o de per odos TimingController de acelera o e desacelera o durante a fra o de tempo normal O pacote Triggers contem um f cil suporte ao iniciar parar das anima es tudo baseado em eventos No pacote s o basicamente encapsulados EventListener que simplificam substancialmente as coisas Ao inv s de escrever v rios listeners para monitornar os eventos e disparar as anima es apropriadamente no seu c digo voc poder setar Triggers as tarefas dos listeners iniciar parar as anima es para voc A inten o tornar isso f cil para termos canonical effects nos componentes da interface gr fica como por exemplo bot es pulsantes componentes que s o animados num instante espec fico entre outros O projeto do TimingFramework plug vel ao NetBeans uma vez que o pr prio desenvolvimento do TimingFramework feito nesta ferramenta Para que os arquivos do projeto sejam interpretados corretamente sugere se que se use o NetBeans vers o 5 0 o que n o impede na verdade que se use uma vers o maior da ferramenta importante salientar que o TimingFramework exige a vers o 5 0 ou superior do JDK e isso se deve ao fato de que em seu c digo fonte s o usados recursos da tecnologia Generics do Java que de uma forma bastante interessante nos disp e uma outra forma mais enjuta de resgatarmos diferentes PropertyRange and KeyValues associados a uma anima o qualquer que es
94. s que comp e o Gabrielus E dessa forma ao passo que apresentamos os pacotes que comp e o Gabrielus nos propomos a fazer a explana o do diagrama de componentes apresentado acima 3 1 Frameworks No desenvolvimento de software um framework uma estrutura de suporte definida em que um outro projeto de software pode ser organizado e desenvolvido Tipicamente um framework pode incluir programas de apoio bibliotecas de c digo linguagens de script e outros softwares para ajudar a desenvolver juntar diferentes componentes do seu projeto Especificamente em orienta o a objeto framework um conjunto de classes com objetivo de reutiliza o de um design provendo um guia para uma solu o de arquitetura em um dom nio espec fico de software Framework se diferencia de uma simples biblioteca em ingl s toolkit pois esta se concentra apenas em oferecer implementa o de funcionalidades sem definir a reutiliza o de uma solu o de arquitetura em ingl s design Utiliza se o conceito de Framework tecnologia que oferece aos desenvolvedores um ve culo para reuso al m de uma forma de capturar a ess ncia de padr es com o objetivo de aumentar a qualidade e a produtividade no desenvolvimento O Gabrielus faz uso de dois frameworks o Viotel e o TimingFramework O primeiro Violet o framework que utilizamos para montar o editor propriamente dito e est relacionada com processamentos b sicos de qualquer aplica
95. teja fazendo uso deste recursos 16 Site do NetBeans http www netbeans org index pt html 17 Site do Generics http java sun com j2se 1 5 0 docs guide language generics html 18 3 2 Packages No desenvolvimento de pequenas atividades ou aplica es vi vel manter o c digo e suas classes no diret rio corrente No entanto para grandes aplica es preciso organizar as classes de maneira a evitar problemas com nomes duplicados de classes e localizar o c digo da classe de forma eficiente Em Java a solu o para esse problema est na organiza o de classes e interfaces em pacotes Essencialmente uma classe Xyz que pertence a um pacote nome do pacote tem o nome completo nome do pacote Xyz e o compilador Java espera encontrar o arquivo Xyz class em um subdiret rio nome do pacote Este por sua vez deve estar localizado sob um dos diret rios especificados na vari vel de ambiente CLASSPATH Tipicamente um pacote em Java cont m as declara es de v rias classes relacionadas Essas classes s o armazenadas em v rias unidades de compila o arquivos do sistema operacional Cada uma destas unidades de compila o deve ter no in cio a seguinte declara o package pacote Onde pacote o nome do pacote ao qual a unidade pertence Al m disso todas esta unidades devem estar localizadas no mesmo diret rio do sistema operacional Note ent o a forte liga o entre o conceito de diret rio e o conceit
96. tivo como por exemplo o de salvar abrir imprimir entre outros J o segundo TimingFramework o framework que adotamos para a implementa o das anima es dos diagramas Ambos os frameworks s o apresentados a seguir e mais tarde mostramos onde cada um deles aparece na implementa o do Gabrielus 15 3 1 1 Violet O Violet um editor UML desenvolvido por Cay Horstmann e que nos tr s as seguintes caracter sticas um editor de UML simples de aprender e usar Desenha nice looking diagramas de classe sequencia estado e use case completamente livre incluindo os fontes que s o distribu dos sob a licen a GNU General Public License e multiplataforma O editor em si foi desenvolvido pensando nos alunos professores e ou autores que precisam desenvolver um simples digrama UML rapidamente e que n o necessariamente pretende como ferramenta se desenvolver ao ponto de ser um produto comercializ vel que venha a concorrer com as ferramentas que hoje existem no mercado e que trazem in meras funcionalidades al m das que o Violet disponibiliza Exemplo de ferramentas neste sentido seriam por exemplo o Rational Rose Together o ArgoUML que comercializado com o nome de Poseidon Estes programas embora considerados importantes ferramentas para a serem usadas com editores UML n o caem na gra a de estudantes e usu rios casuais porque s o muito lentos caros e dif ceis de apren
97. torString encontramos as internacionaliza es que dizem respeito aos textos que s o mostrados nos menus do Gabrielus os mnemonics assim como as teclas 23 de atalho para estes menus H tamb m os textos correspondentes as mensagens que s o exibidas em eventos do tipo fechando o Gabrielus sem ter salvo um diagrama que acabou de ser desenhado problemas com vers o do Java e ou o texto que aparece na tela Sobre Menu Ajuda item Sobre do aplicativo Acessando o menu Ajuda do Gabrielus e em seguida no item Licen a estaremos acessando a licen a que protege o Gabrielus A vers o da licen a que exibida nesta tela uma tradu o para o portugu s do Brasil n o oficial da licen a original da GNU General Public Licence Esta tradu o est sendo mantida no arquivo licence txt arquivo de texto que armazenado no pacote framework e que uma das dependencias que este mesmo pacote tem para que seu funcionamento seja feito sem problemas Em seguida temos tamb m uma depend ncia deste pacote com o arquivo gabrielus png que o arquivo que mant m a logo do Gabrielus A logo do Gabrielus foi desenhada por Eleonor Vinicius Dudel Mayer e tamb m assim como o pr prio Gabrielus guardada sobre a licen a GNU General Public License 19 Site de Eleonor Vinicius Dudel Mayer http viniciusmayer googlepages com e ou e mail viniciusmayer gmail com 24 viniciusmayer gabrielus framew
98. trar conte do RTF ou HTML Site do AWT http java sun com products jdk awt API de Application Programming Interface ou Interface de Programa o de Aplicativos um conjunto de rotinas e padr es estabelecidos por um software para utiliza o de suas funcionalidades por programas aplicativos isto programas que n o querem envolver se em detalhes da implementa o do software mas apenas usar seus servi os De modo geral a API composta por uma s rie de fun es acess veis somente por programa o e que permitem utilizar caracter sticas do software menos evidentes ao usu rio tradicional Site do Swing http java sun com docs books tutorial uiswing 4 ORich Text Format RTF um formato de arquivo propriet rio desenvolvido e mantido pela Microsoft deste 1987 para o interc mbio de documentos em multiplataformas Muitos dos processadores de texto s o capazes de ler e escrever documentos do tipo RTF 5 A sigla HTML deriva da express o inglesa HyperText Markup Language Linguagem de Formata o de Hipertexto Trata se de uma linguagem de marca o utilizada para produzir p ginas na Internet De modo geral s o documentos de texto escritos em c digos que podem ser interpretados pelos browsers para exibir as p ginas da NR 13 bot es com suporte a imagens sliders selecionadores de cores entre outros E tamb m poss vel alterar o tipo de borda para a maior parte dos componentes todos podem ter
99. uma analogia desta din mica com os nossos componentes onde o cliente seria um objeto um Reposit rio por exemplo e o servidor poderia ser qualquer outro objeto inclusive um Reposit rio E isso caracter stico desse tipo de estrutura de servi o pois tanto o cliente quanto o servidor mant m o mesmo tipo de implementa o e portanto tanto os clientes quanto os servidores podem executar processos como clientes Devido a esta estrutura extremamente simples que conseguimos fazer com que o servi o de comunica o entre objetos o protocolo propriamente dito fosse reduzido a duas camadas apenas uma que possibilita o envio de mensagens a interface PRequest e outra para recep o das mesmas PResponse O PRequest PResponse Diagrama 11 Diagrama de Classes de vis o panor mica do pacote br com viniciusmayer gabrielus protocol Para o processo de transfer ncia de objetos ent o subdividimos esta estrutura de conversa es entre componentes do sistema em tr s est gios ou camadas a est gio de pr requisi es que fazem um levantamento pr vio da situa o dos objetos envolvidos na transfer ncia e principalmente sem fazer altera es no estado dos objetos envolvidos b est gio de requisi es e estas estar o de certa forma estabelecendo contratos com os objetos destino e por ltimo c o est gio de transfer ncias de tokens entre objetos onde acontece de fato a manipula o do Token de um objeto at
100. usados por todos os pacotes do Gabrielus E por ltimo o framework violet jar que a respons vel pelo processamento de v rias das funcionalidades b sicas do aplicativo como por exemplo a do salvamento de um diagrama dataflow desenhado no disco r gido da m quina do usu rio DataFlowEditor JAVA VERSI N String 1 4 main args Strin void Diagrama 02 Diagrama de Classes do pacote br com viniciusmayer gabrielus editor Este portanto diagrama de classes do pacote br com viniciusmayer gabrielus editor nele apenas a classe DataFlowEditor Nesta classe apenas um atributo que nos diz qual a vers o minima do JDK que o Gabrielus precisa para garantir o seu pleno funcionamento e o m todo main O c digo do m todo main segue abaixo para que possamos dar uma passada de olhos nele 21 public static void main String args checker check JAVA VERSION ew e Macas catch SecurityException ex 103 DOS gt gt DataFlowEditorFrame frame new DataFlowEditorFrame DataFlowEditor class frame addGraphType dataflow diagram DataFlowDiagramGraph class frame addGraphType class diagram ClassDiagramGraph class frame setVisible true frame readArgs args VersionChecker checker new VersionChecker System setProperty apple laf useScreenMenuBar Primeiramente feita a verifica o da vers o do JDK instalado
101. usivamente pelo processamento das requisi es que ser o realizadas entre os objetos envolvidos na transfer ncia de um token Esta classe tamb m dever implementar os tr s m todos que foram definidos na interface PRequest no entanto apenas o m todo request que ser utilizado realmente no processamento da requisi o solicitada o TTransfer que estar mantendo os dados necess rio para o transporte do token de um objeto para outro durante o processo de fluxo de dados o processo de transfer ncia de tokens Ap s os est gios anteriores terem varrido todo o diagrama setado todas as vari veis necess rias para o fluxo perfeito do token por entre os objetos e feito o que estamos chamando de contrato com os demais componentes envolvidos no fluxo de token a classe TTransfer aparece para ser 0 36 intermedi rio entre ent o os componementes intermedi rio condutores do token em quest o D se por encerrado fluxo de dados a transfer ncia de token quando todos as threads TTransfer estiverem mortas j tamb m j tiverem sido consultadas por seus geradores 37 4 Ambiente Web O fen meno da Internet trouxe para os desenvolvedores de sistemas pelo menos dois novos desafios toda aplica o deve ser distribu da ao contr rio das aplica es tradicionais monoliticas que rodam em um computador isolado e toda aplica o formada pela agrega o de um conjunto de tecnologias e linguagens tradicionalmente
102. www iis net 44 viniciusmayer qqmitz479 opt tomcat Shell Konsole Session Edit View Bookmarks Settings Help qqmtz479 opt tomcat pwd opt tomcat qqmtz479 opt tomcat 1 total 34 drwxr xr 11 viniciusmayer 2006 06 21 od drwxr xr x 12 root 2006 07 06 S 2006 06 21 57 bin 2006 04 14 E common 2006 06 22 conf 2006 04 14 LICENSE 2006 06 22 logs 2006 04 14 NOTICE 2006 04 14 RELEASE NOTES 2006 04 14 RUNNING txt 2006 04 14 server 2006 04 14 shared 2006 06 21 57 temp 2006 06 21 2 2006 06 21 H drwxr xr 2 viniciusmayer drwxr xr viniciusmayer m H drwxr xr viniciusmayer H rwxr xr viniciusmayer E H drwxr xr viniciusmayer E H IWXI XxIr viniciusmayer viniciusma E E 0000000000000 0 mmm H IWXI XI e E drwxr xr viniciusma E H yer yer yer drwxr xr viniciusmayer co K drwxr xr viniciusmay viniciusmay viniciusmayer qqmtz479 opt tomcat E H m m H drwxr xr 1l r 6 3 1 2 1 1 rwxr xr 1 viniciusma 5 4 2 3 drwxr xr 000000000000000000 E H Shell Figura 03 Screenshot da rvore de diret rios do Apache Tomcat Vamos analisar cada um destes diret rios separadamente bin Este diret rio cont m os arquivos bin rios execut veis Na instala o da vers o 5 5 9 para Windows voc encontrar arquiv
Download Pdf Manuals
Related Search
Related Contents
LG LFX31935ST Energy Guide Conceptronic CLLSPKACTION Termómetro GENIUS™ 2 guía de limpieza Copyright © All rights reserved.
Failed to retrieve file