Archetudo, desenvolvendo sistemas em Plone a partir de Modelos UML
Definiçoes
ZOpe
ZOpe em pt_BR
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
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 é 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? ).