Archetudo, desenvolvendo sistemas em Plone a partir de Modelos UML

Definiçoes

ZOpe

ZOpe em pt_BR smile

Zope é um servidor de aplicações livre. As aplicações mais "populares" que rodam sobre ZOpe incluem CMS(Sistemas gerenciadores de conteúdo), Sistemas para Intranets, portais, e outras aplicações como webmails e implementações de WikiWikiWebs? . Zope é escrito em Python, uma linguagem livre altamente produtiva que suporta diversos paradigmas. Entre eles o paradigma orientado a objetos, sob o qual Zope foi escrito.

Plone

Plone em pt_BR smile

Plone é, sem dúvida, o mais usado, mais desenvolvido e mais importante produto/aplicação rodando sobre o Zope. Originalmente desenvolvido para ser um sistema gerenciador de conteúdo(CMS) e tendo se transformado num dos mais competitivos sistemas para tal finalidade, o Plone evoluiu para um ambiente de desenvolvimento de aplicações WEB em geral. Plone requer um mínimo esforço de instalação e configuração e é profundamente flexível suportando diversas linguagens de programação e de templates já trazendo estruturas prontas para internacionalização, accessibilidade, workflow, e gerencia de níveis de acesso e permissões nos seus módulos de gerencia de usuários. Plone tanto tem suporte aos bancos de dados mais usados do mercado(MySQL? , PostgreSQL? e os demais proprietários) quanto oferece mais de uma alternativa para usar abstração da camada de dados dos sistemas. Plone é profundamente extensível por interoperar muito bem com a --extremamente-- simples interface(API) de desenvolvimento de Produtos do Zope. Tal extensibilidade resultou no surgimento dos Archetypes, um produto que permite o desenvolvimnento de outros produtos que se utilizam da infra-estrutura do Plone.

Archetypes

Archetypes é um Produto/framework para automatizar o desenvolvimento de produtos em Plone. Uma vez que a descrição (Schema) de um tipo de conteúdo (content type) é escrita em Python, o Archetypes se encarrega da gerência para a manipulação dos objetos pelo desenvolvedor, desde a criação de views até os formulários de edição. Isto permite o desenvolvimento de forma rápida e com o mínimo de código. As vantagens que merecem destaque são:

- criação automática de views e páginas (páginas e formulários) para edição dos objetos.

- Manutenção de IDs únicos para os objetos. Cada objeto criado terá um único ID que o usuário não poderá mudar. Isto significa também que um objeto sempre pode ser localizado, mesmo se movido.

- Criação de referências entre os objetos. Cada objeto pode ter qualquer número de referências entre outros objetos.

- Configuração default de segurança. Se a configuração padrão já for suficiente, nada precisa ser modificado.

- Opções alternativas de armazenamento, do ZODB até bancos de dados relacionais.

ArchGenXML

ArchGenXML é um parser que, a partir de modelos UML em formato XMI (.xmi, .zargo, .zuml), criados com aplicações como ArgoUML? ?, Poseidon ou ObjectDomain? ?, gera código para a criação de aplicações (Produtos) CMF/Plone baseadas no framework de Archetypes.

MDA: Model Driven Architecture

“MDA is an approach to system development…[that]… provides a means for using models to direct the course of understanding, design, construction, deployment, operation, maintenance and modification.” [MDA Guide omg/03-06-01] veja: http://www.omg.org/docs/ormsc/05-04-01.pdf e tb: http://en.wikipedia.org/wiki/Model_Driven_Architecture

Na nossa combinaçao de Zope/Plone/Archetypes/ArchGenXML/ArchImports, temos um completo ambiente de trabalho para suportar a engenharia de software orientada a modelos conforme prega a definição de MDA(Arquitetura Orientada por Modelos). Partindo de PIM(Modelo Independente de plataforma, sigla em Inglês) em UML aderente ao padrão XMI para o PSM(Modelo de Plataforma específica, sigla em Inglês) da combinação citada.

Obviamente as possibilidades do MDA na definição da OMG são transversais e trazem um forte viés da interoperabilidade entre PIMs/PSMs e da portabilidade de um PIM para diferentes PSMs. Entretanto, a engenharia de software orientada a modelos é o passo fundamental para a implementação plena de MDA, também segundo a OMG.

Descrição da palestra

Por anos o surgimento e desenvolvimento de técnicas, tecnologias e paradigmas como RAD, UML, Ferramentas CASE, dentre outros alimentaram a perspectiva de que o trabalho de analistas e desenvolvedores de sistemas se aproximaria cada vez mais do desenvolvimento de modelos sejam modelos de interação entre entidades ou classes, desenho dos fluxos de tarefas/atividades(workflow), definição de regras de produção/transformação de primitivas e afins; e se afastaria de preocupações com escrita de código e especificidades de plataforma e de comunicação.

Tal perspectiva "tem tido uma nova onda de interesse" melhorar essa frase horrivel nos últimos anos com o interesse da comunidade de deselvolvimento pelo MDA: Model Driven Architecture(Arquitetura Orientada por Modelo). Esse interesse tem sido ainda maior dos envolvidos no desenvolvimento de soluções para grandes cilentes(governos, grandes corporações, empresas de Internet, etc...)

A combinação dos produtos Zope, Plone, Archetypes, ArchGenXML e ArchImports? na definição do ambiente de desenvolvimento de sistemas WEB pela SEDSL(Célula de Desenvolvimento com Software Livre do SERPRO-Porto Alegre).....nos oferece um ambiente de trabalho para suportar a engenharia de software orientada a modelos conforme prega a definição de MDA(Arquitetura Orientada por Modelos). Partindo de PIM(Modelo Independente de plataforma, sigla em Inglês) em UML aderente ao padrão XMI para o PSM(Modelo de Plataforma específica, sigla em Inglês) da combinação citada.

Obviamente as possibilidades do MDA na definição da OMG são transversais e trazem um forte viés da interoperabilidade entre PIMs/PSMs e da portabilidade de um PIM para diferentes PSMs. Entretanto, a engenharia de software orientada a modelos é o passo fundamental para a implementação plena de MDA, também segundo a OMG.

A palestra aqui proposta será introduzida com um breve explanação dos motivos que levaram o SERPRO a adotar uma solução Livre para desenvolvimento de portais e sistemas WEB. Seguida de sucintas definições dos constituintes da combinação:

  • ZOPE
    • Um servidor de aplicações livre. As aplicações mais "populares" que rodam sobre ZOpe incluem CMS(Sistemas gerenciadores de conteúdo), Sistemas para Intranets, portais, e outras aplicações como webmails e implementações de WikiWikiWebs? . Zope é escrito em Python, uma linguagem livre altamente produtiva que suporta diversos paradigmas. Entre eles o paradigma orientado a objetos, sob o qual Zope foi escrito.

  • PLONE
    • Plone é, sem dúvida, o mais usado, mais desenvolvido e mais importante produto/aplicação rodando sobre o Zope.
Originalmente desenvolvido para ser um sistema gerenciador de conteúdo(CMS) e tendo se transformado num dos mais competitivos sistemas para tal finalidade, o Plone evoluiu para um ambiente de desenvolvimento de aplicações WEB em geral. Plone requer um mínimo esforço de instalação e configuração e é profundamente flexível suportando diversas linguagens de programação e de templates já trazendo estruturas prontas para internacionalização, accessibilidade, workflow, e gerencia de níveis de acesso e permissões nos seus módulos de gerencia de usuários. Plone tanto tem suporte aos bancos de dados mais usados do mercado(MySQL? , PostgreSQL? e os demais proprietários) quanto oferece mais de uma alternativa para usar abstração da camada de dados dos sistemas. Plone é profundamente extensível por interoperar muito bem com a --extremamente-- simples interface(API) de desenvolvimento de Produtos do Zope. Tal extensibilidade resultou no surgimento dos Archetypes, um produto que permite o desenvolvimnento de outros produtos que se utilizam da infra-estrutura do Plone.

  • ARCHETYPES
    • Archetypes é um Produto/framework para automatizar o desenvolvimento de produtos em Plone. Uma vez que a descrição (Schema) de um tipo de conteúdo (content type) é escrita em Python, o Archetypes se encarrega da gerência para a manipulação dos objetos pelo desenvolvedor, desde a criação de views até os formulários de edição. Isto permite o desenvolvimento de forma rápida e com o mínimo de código. As vantagens que merecem destaque são:

      • criação automática de views e páginas (páginas e formulários) para edição dos objetos.
      • Manutenção de IDs únicos para os objetos. Cada objeto criado terá um único ID que o usuário não poderá mudar. Isto significa também que um objeto sempre pode ser localizado, mesmo se movido.
      • Criação de referências entre os objetos. Cada objeto pode ter qualquer número de referências entre outros objetos.
      • Configuração default de segurança. Se a configuração padrão já for suficiente, nada precisa ser modificado.
      • Opções alternativas de armazenamento, do ZODB até bancos de dados relacionais.

  • ArchGenXML
    • ArchGenXML é um parser que, a partir de modelos UML em formato XMI (.xmi, .zargo, .zuml), criados com aplicações como ArgoUML? ?, Poseidon ou ObjectDomain? ?, gera código para a criação de aplicações (Produtos) CMF/Plone baseadas no framework de Archetypes.

  • ArchImports?
    • Um parser, desenvolvido na célula SEDSL do SERPRO que automatiza....

Cada uma dessas sessões apresentará exemplos de utilização e instituições que tem usado as soluções isoladamente. Por fim, será apresentado um quadro comparativo da produtividade em PF/h(pntos de Função por hora) da combinação citada com outros ambientes livres usados no SERPRO. Dentre eles PHP4, PHP5 com o framework de desenvolvimento dessa linguagem(também desenvolvido na SEDSL) e ZOpe + Plone com uso de Python em arquitetura MVC(Model-View-Controller).

Descrição da palestra2

940 palavras nao dá, portanto...

Por anos o surgimento e desenvolvimento de técnicas, tecnologias e paradigmas como RAD, UML, Ferramentas CASE, dentre outros, alimentaram a perspectiva de que o trabalho de analistas e desenvolvedores de sistemas se afastaria de preocupações com escrita de código e especificidades de plataforma e de comunicação, se aproximando cada vez mais do desenvolvimento de modelos, sejam eles de interação entre entidades ou classes, dos fluxos de tarefas/atividades (workflow), definição de regras de produção/transformação de primitivas e afins.

A combinação dos produtos Zope, Plone, Archetypes, ArchGenXML na definição do ambiente de desenvolvimento de sistemas WEB pela SEDSL (Célula de Desenvolvimento com Software Livre do SERPRO-PoA) nos oferece um ambiente para suportar a engenharia de software orientada a modelos. Tal ambiente se aproxima da definição de MDA (Arquitetura Orientada por Modelos), partindo de PIM (Modelo Independente de plataforma, sigla em Inglês) em UML aderente ao padrão XMI para o PSM (Modelo de Plataforma específica, sigla em Inglês) da combinação citada.

As possibilidades do MDA na definição da OMG (ObjectManagementGroup? ) são transversais e trazem um forte viés da interoperabilidade entre PIMs/PSMs e da portabilidade de um PIM para diferentes PSMs. Assim sendo, a engenharia orientada a modelos é o passo fundamental para a implementação de MDA, também segundo a OMG.

Para complementar o ambiente, foi desenvolvido na SEDSL o script ArchImports? , que torna mais automatizada a transformação do modelo em código.

A palestra aqui proposta traz uma breve explanação dos motivos que levaram o SERPRO a adotar uma solução Livre para portais e sistemas WEB. Serão apresentadas breves definições dos constituintes da combinação:

Cada uma com exemplos de utilização e instituições que as adotam.

Por fim, será apresentado um comparativo da produtividade em Pontos de Função por hora da combinação citada com outros ambientes livres usados no SERPRO; dentre eles PHP4, PHP5 (com framework desenvolvido na SEDSL) e Zope/Plone com Python em MVC (ModelViewController? ).

Resumo

A combinação de Zope, Plone, Archetypes, ArchGenXML oferece um ambiente para engenharia de software orientada a modelos de modo a partir do diagrama UML para implementação com apenas uma linha de comando. Para complementar o ambiente, foi desenvolvido o ArchImports? , que torna o processo ainda mais automatizado.

A palestra traz, por fim, um comparativo da produtividade em Pontos de Função por hora da com PHP4, PHP5 (com framework desenvolvido no SERPRO/SEDSL) e Zope/Plone com Python em MVC (ModelViewController? ).

Topic revision: r11 - 13 May 2006 - 02:53:42 - CarlosMachado
 
This site is powered by the TWiki collaboration platformCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Wiki-SL? Send feedback