Вы находитесь на странице: 1из 19

1

A
Mdulo
. A

Apresentao

Este um mdulo conceitual, que apresenta os produtos e tecnologias que sero empregados neste livro, introduzindo ainda a arquitetura e mtodos que serviro de base para as prticas dos mdulos subsequentes.

Captulo
1 A

Introduo ao jCompany Developer Suite

As oportunidades do eBusiness

s empresas tm sido desafiadas como nunca a competirem em escala global e, para tal, o domnio

das tecnologias Web no mais algo do qual possam prescindir. Saindo da automao das tarefas rotineiras das reas de retaguarda para a vanguarda dos negcios, a Web oferece, nos dias de hoje, muito mais oportunidades do que a maioria das empresas tem conseguido compreender e assimilar. Neste cenrio atual de acelerao da histria, os negcios so desafiados primariamente pela famosa previso de Gordon Moore conhecida com a Lei de Moore: a capacidade do hardware continua a dobrar a cada dois anos, sem aumento dos custos, e com ela tambm o espao de inovao do software. Enquanto esta lei durar e ir por, pelo menos, mais 20 anos - as oportunidades criativas na rea de software continuaro excepcionalmente anabolizadas, um poderoso arsenal competitivo para empresas geis e em aprendizado constante que saibam utiliz-lo. E percebamos bem: software se constri com outros softwares. Como um produto invisvel e abstrato, um programa de computador resa e construdo a partir de outras categorias de programas, tais como ferramentas de construo, frameworks e bibliotecas para reso. E com o prprio ferramental disposio dos desenvolvedores se expandindo juntamente com os limites criativos de suas aplicaes de negcios, deveramos estar em um ciclo virtuoso, no mesmo? Por que, ento, continuam falhando tantos projetos de TI? Por que no estamos todos comemorando resultados surpreendentes, potencializados pelo avanado estgio do software? Fugindo da extenso que uma resposta completa exigiria, vamos nos ater um dos fatores de consenso, resumido por Scott Rosenberg, o fundador do famoso Web-Site www.salon.com: software difcil porque no se consegue atualizar os profissionais de desenvolvimento na mesma velocidade em que as possibilidades se atualizam.
(...) por isso que no existe Lei de Moore para software. Chips podem dobrar de capacidade a cada ano ou dois; nossos crebros no.
Ref. A1.1. Scott Resenberg, em Dreaming in Code [Rosenberg, Scott 2007].

Por motivos como este, empresas cujo foco no seja desenvolvimento de software tm partido para a terceirizao quase total desta expertise tecnolgica... O problema que este modelo de distanciamento da tecnologia logo expe as suas falhas. O ritmo de evoluo dos terceiros tambm limitado; de qualquer modo ser preciso de um bom nvel de domnio tcnico, para se gerenciar terceirizaes no nvel adequado de detalhe; e por a vai... Em suma, logo se descobre que este modelo no elimina o risco - ser preciso gerenci-lo, enfrentando o problema cultural.
Muitos compradores de Fbricas de Software esto hoje recebendo verdadeiras aplicaes bomba -relgio de seus fornecedores, construdas rapidamente para um projeto s, mas difceis ou impossveis de serem mantidas que no por seu criador. Com tal nvel de variabilidade implementada por cada desenvolvedor terceirizado, mais apropriado seria chamarmos estes modelos de Artesanatos de Software.

Arquiteturas pobres, falta de criatividade e de inovao sinrgica entre tecnologia e negcios, so outros fatores sempre presentes, quando a distncia cultural entre as pessoas de negcio e as de tecnologia muito grande. No fim, no h como nos furtarmos pergunta da Era do Conhecimento: Como domar novas tecnologias e convert-las em inovao para os negcios? Nasce da a nossa grande motivao com este livro: prover informaes de uma forma prtica e atual, contribuindo com informaes, padres e solues de software que ajudem aos arquitetos e desenvolvedores de software a resolver problemas corporativos na velocidade dos tempos atuais.

Captulo A1

Tirando o mximo do Java EE Open Source


As tecnologias baseadas no Java EE, especialmente em seu ramo Open Source, representam hoje uma fonte bvia de inovao pragmtica que no deve ser dispensada. No entanto, em sua maioria esta fonte est disponvel em forma bruta, exigindo conhecimento tcnico no somente para seu acesso e uso bsico, mas principalmente para especializaes que permitam sua aplicao contextualizada e otimizada.
O desenvolvimento de uma aplicao corporativa do mundo real carrega consigo muitos problemas que escapam ao radar de um nico produto Open Source, e que, portanto, devem ser equacionados no escopo da arquitetura corporativa.

Felizmente, so estas as lacunas que o jCompany Developer Suite procura preencher. Seu uso durante o livro nos possibilitar almejar resultados rpidos e traar uma estratgia de assimilao gradual, sem abrirmos mo de resultados iniciais minimamente razoveis. Mas este o assunto central de todo o livro, sobre o qual nos debruaremos na prtica a partir do prximo mdulo. Por hora, voltemos aos nossos pilares de sustentao. - Java EE como mercado comum e plataforma de flexibilidade O Java EE, como arquitetura tecnolgica de base adotada por praticamente toda a indstria (com a notvel, mas insuficiente, exceo da Microsoft), tornou-se fundamental para homogeneizar a comunicao, permitindo intercmbio de componentes, frameworks, processos e padres, em um mercado quase universal para fornecedores que antes concorriam em nichos tecnolgicos. Presente em mais de 70% do mercado corporativo no Brasil, o Java EE permite uma comunicao tcnica entre reas e profissionais de TI to necessria quanto o idioma ingls hoje para o mundo. E o que melhor: no limite, esta homogeneidade e estmulo concorrncia proveram condies para o surgimento do movimento Open Source, este por si um advento de valor inestimvel para o mercado comprador de software. - Tirando o mximo do Java EE para os negcios H uma importante diferena entre tirar o mximo da tecnologia pela tecnologia, por exemplo, explorando todas as APIs e frameworks Java EE possveis e existentes, e tirar o mximo da tecnologia para os negcios, que o sentido que queremos explorar neste livro. Em nosso caso, desejamos maximizar o retorno do Java EE para os negcios, selecionando e explorando ao mximo aquela parcela de APIs e frameworks que prov a maior taxa de retorno na maior parte dos casos, em um tpico raciocnio 20/80 de Paretto. Vejamos alguns extremos de postura com relao internalizao de inovao que encontramos atualmente: o Por um lado, existem departamentos de Tecnologia da Informao (TI) que absorvem inovaes tecnolgicas de forma lenta ou mediana e so at considerados satisfatrios, tolerados pela gesto de suas empresas. Em parte isso se explica pelos benefcios que a prpria Lei de Moore, por si, j promove: a prpria evoluo orgnica do hardware e a atualizao de verses de tecnologias de base permitem s reas de TI hoje apresentarem algum resultado, o que preserva em muitas a acomodao de jogar pelo empate. Um bom exemplo so empresas que preservam geraes obsoletas de aplicaes, caras e defeituosas, para alm de seu limite de vida razovel (acredite, j nos deparamos com empresas rodando aplicaes de mainframe monousurias, mantidas a preo de ouro, somente por inrcia tecnolgica!). o Mas no outro extremo, tambm muito perigoso, esto os que chamamos de compradores de tecnologia fashion, que costumam ser coadjuvantes dos verdadeiros protagonistas, fornecedores de software que supervalorizam tecnologias emergentes em produtos repletos de excessos de engenharia (overenginnering).

Defendemos uma posio mediana. Nosso objetivo de tirar o mximo do Java EE Open Source no deve ser confundido com apreender tecnologia pela tecnologia, mas como uma busca por absorver aquelas fraes de novas tecnologias de software que realmente so um meio oportuno para o fim maior, de viabilizar resultados de negcio diferenciados e criativos. Mas como poderemos, neste livro, sugerir solues de negcio criativas? simples: no poderemos. Como no discutiremos nenhuma vertical de negcio especfica, esta uma misso nobre que caber nica e exclusivamente ao desenvolvedor nela contextualizado. Mas faremos o que nos possvel: trazer solues que poupam boa parcela de tempo de desenvolvimento de uma forma geral para que profissionais de TI possam exercitar melhor sua criatividade com foco em

Introduo ao jCompany Developer Suite

negcios. Faremos isso atravs de reso de solues quase-completas e altamente produtivas, na forma de padres de alto nvel, ou em nvel de Caso de Uso. Estas solues no chegam a adentrar em nenhuma vertical de negcio especfica, mas resolvem uma boa parcela de problemas comuns a todas elas, presentes em camadas que compem a parte arquitetural commodity da soluo. Com a experincia, comea-se a distinguir mais claramente quais so estas camadas que devem ser reutilizadas e quais so as que devem ser criadas. Na maior parte dos casos, completa insensatez despender-se tempo criativo em camadas bsicas de arquitetura de software em busca de inovao de negcios, a menos que seu negcio seja software*. Ao reutilizarmos solues que especializam e integram APIs Java EE e produtos Open Source com resultado comprovado, atravs de diretrizes tcnicas de mercado, eliminamos tempo de Pesquisa & Desenvolvimento (P&D) em camadas arquiteturais que no deveriam mesmo conter variaes criativas. E possibilitamos que as preciosas energia e criatividade dos departamentos de TI sejam concentradas onde deveriam: nas camadas de software que refletem o Core Business da corporao. - Open Source como estratgia de projetos Para o mundo corporativo, o movimento Open Source hoje compreendido principalmente como uma estratgia de projeto, mais do que de reduo de custos, como fora em seu incio. No estgio atual do movimento, os tcnicos mais informados e inclusive muitos CIOs - j reconhecem a importncia decisiva que o acesso aos cdigos fontes reutilizados traz para seus objetivos de projeto, viabilizando integrao, adaptao e maximizao do reso em granularidade fina.
Para quem uma vez experimenta a liberdade do Open Source, as APIs proprietrias dos cdigos fechados representam verdadeiros Firewalls de Projeto. Barram solues que exigem adaptao e flexibilidade em nveis maiores de detalhe, retardam a correo de bugs e reduzem a taxa de comunicao entre tcnicos, entendimento e customizao que possam pretender.

Alm disso, o movimento do Open Source Software (OSS) j estabeleceu com sucesso uma verdadeira revoluo scio-cultural na rea de TI, com seus fruns de troca de conhecimentos, padres e tcnicas de trabalho em nveis inditos. Neste aspecto, um de nossos principais aliados no desafio bsico de minimizar o dficit de conhecimento.

jCompany x JAGUAR
Atualmente a Powerlogic fornece atrves do Portal de Software Pblico Brasileiro (http://www.softwarepublico.gov.br) o framework JAGUAR. Este framework totalmente baseado no jCompany Developer Suite e foi doado a comunidade sob as licenas GPLv2 e GPLv3. Este livro tem como objetivo orientar o uso dos dois produtos, utilizando primariamente o nome jCompany. Obs.: capturas de telas podero exibir logotipos tanto do jCompany quanto do Jaguar, o que no tem efeito prtico no contedo. Mais detalhes do JAGUAR podem ser obtidos na comunidade JAGUAR do Portal do Software Pblico ou em http://www.powerlogic.org.

O jCompany Developer Suite


- Uma breve introduo ao jCompany Dos produtos Java EE Open Source como eles existem at seu estgio de contextualizao ideal, em qualquer empresa, h um longo caminho a ser percorrido. Quando no se reconhece este fato, por superestimao das tecnologias ou subestimao dos nveis de exigncia corporativos de TI, o resultado aparece na forma de arquiteturas medocres, insuficientes para se evitar mesmo tragdias bsicas. O surgimento, em 2003, do jCompany Developer Suite foi uma resposta da Powerlogic a clientes que ansiavam por um transporte mais rpido que os ajudasse a cortar caminho nesta jornada, internalizar e otimizar o Java EE Open Source sem perda de Time-to-Market e do foco em seus negcios.

Ainda assim, muitos profissionais mal sintonizados com os objetivos de sua empresa e com os rumos dos negcios na atualidade, gostam de reinventar commodities, como frameworks de base.

Captulo A1

O modelo de licenciamento Open Source 2.0 foi tambm um grande coadjuvante deste sucesso pois, ao permitir as grandes organizaes adquirirem produtos abertos de qualidade comprovada, viabilizou uma terceirizao gerencivel da complexidade envolvida, sem perda dos benefcios culturais e da liberdade do Open Source. Mas um erro bsico seria imaginar o jCompany como um simples empacotamento dos projetos Open Source que ele reutiliza. Tais projetos de base para reuso so instalados juntamente com a sute unicamente para comodidade do cliente, que deste modo passa a contar com um ambiente Open Source imediatamente pronto para uso, integrado e homologado. O jCompany em si, como veremos, composto por uma quantidade razovel de projetos Java EE especficos, plugins Eclipse, mtodos e padres, solues de integrao e gerncia de configurao extremamente trabalhosas, dentre vrios outros suplementos de alto valor agregado, mantidos pela equipe de desenvolvimento dedicada da Powerlogic. Esta equipe formada por dezenas de desenvolvedores, profissionais de QA, Web-Design e de Produtao, trabalhando em um ambiente certificado em MPS.Br nvel C (CMMI-3) com base em prticas geis (SCRUM), condizentes com o mundo Open Source. Neste modelo, os clientes so convidados a participarem ativamente, de forma colaborativa. Qualquer profissional de clientes se engajar como um desenvolvedor colaborativo (prosumer) atravs do Portal do Software Pblico. Neste patamar ele tem acesso ao repositrio de fontes oficial do produto, podendo acelerar questes de interesse de sua empresa (naturalmente, mediante aprovao do Product Owner), dentre outros benefcios. Verifique, na comunidade Jaguar, mais informaes sobre estas facilidades. - A busca pela hiper-produtividade O jCompany Developer Suite uma soluo bastante eficaz para o aprimoramento dos resultados quando se trata de desenvolvimento de aplicaes de software para Web em escala corporativa. Trata-se de uma sute de produtos multidimensional que trabalha a problemtica da produtividade e qualidade por diversos ngulos. Muito embora seja algumas vezes, erroneamente compreendido como um framework, o jCompany na verdade uma soluo completa, cuja composio ilustrada pelo diagrama da Figura A1.1.

Figura A1.1. Dimenses de atuao da sute do jCompany.

O framework existe atravs do mdulo jCompany Full Stack Framework, com uma alta parcela de contribuio, mas diversos outros mdulos importantes e integrados proporcionam a sinergia responsvel pelo resultado final diferenciado da sute jCompany. Quando comparado ao desempenho de uma soluo tpica para desenvolvimento Java EE, caracterizada pelo aproveitamento mediano de tcnicas de Orientao a Objetos, arquiteturas de software anmicas, ausncia de gerncia de configurao e uso de IDEs agnsticas (que desconhecem o processo e no podem incentivar melhores prticas), o jCompany pode apresentar nveis de hiperprodutividade. E esta no hoje uma mera alegao. A Powerlogic tem colhido estes resultados ao longo de 8 (oito) anos de experincia pioneira tendo a tecnologia Java como seu Core Business. No que so hoje mais de centenas de projetos corporativos em produo, o jCompany veio reduzindo prazos da ordem de grandeza de meses para semanas, e com aumento considervel da qualidade: mais flexibilidade, escalabilidade, performance, usabilidade e estabilidade. - Qualidade para produtividade sustentvel Sabe-se que a super nfase em produtividade e tempo de resposta ao mercado (time -to-market), sem as mnimas restries de qualidade, conduz sndrome da primeira verso: Aplicaes entregues no prazo, apresentando problemas de estabilidade, performance, no conformidades e dificuldades srias em sua manuteno, que terminam por cobrar de volta todos os ganhos imaginrios de produtividade,

Introduo ao jCompany Developer Suite

com juros e correo monetria. o que se termina por reconhecer como pressa, no como produtividade. Por este motivo, muitas preocupaes do jCompany so inteiramente dedicadas qualidade , mesmo que ao custo de uma reduo de ganho inicial. o caso, por exemplo, da opo pela arquitetura de base MVC (Model-View-Controller), importante para maior flexibilidade em evolues e para se manter a complexidade sob controle, mas no necessariamente para se desenvolver mais rpido. Por outro lado, quase todas as preocupaes com produtividade do jCompany tambm consideram o aspecto qualidade. Por exemplo, antes de usar tcnicas de gerao de artefatos, o jCompany esgota prioritariamente as possibilidades mais sofisticadas da Orientao a Objetos (OO). Deste modo, apesar de aumentar a curva de aprendizado, o resultado de produtividade consistente, preservado nas fases de manuteno. Ao eliminar cdigo, em lugar de prolifer-los mais rapidamente (como na gerao de cdigo), a Orientao a Objetos tambm diminui a probabilidade de erros. - Produtividade corporativa em escala industrial Para uma empresa que possua tcnicos com alta proficincia em Java EE, a maneira mais rpida para se construir uma aplicao ser, provavelmente, deixando-os fazerem da forma que sabem. Deste modo, elimina-se qualquer curva de aprendizado e evitam-se resistncias mudana de cultura. Porm, esta uma viso simplista do problema. Devido imensa variabilidade de solues possveis em Java EE, para um mesmo problema, esta liberdade terminar por permitir a proliferao de diversas arquiteturas individuais, que dificultam o desenvolvimento em escala. Qualidade flutuante, problemas em requisitos de integrao e dificuldades nas fases de manuteno (turn-overs complexos) costumam ser suficientes para se justificar um padro arquitetural nico para a organizao. inevitvel que grandes organizaes evitem a rapidez artesanal, de alto risco, em prol de uma produtividade industrial, sustentvel. No mdio prazo, este o nico caminho. Neste sentido, o jCompany se torna um grande catalisador, garantindo uma pauta mnima de qualidade, produtividade e padronizao em um nvel de profundidade que, realmente, garante diminuio da variabilidade indesejvel de solues para problemas similares e em camadas de arquitetura. Deste modo, desenvolvedores criativos podem usar a sua criatividade em camadas do negcio. - Por que o jCompany funciona? Porque, como qualquer soluo para aumento de qualidade e acelerao de processos industriais, o jCompany atua com seus vrios mdulos sobre diversos flancos desta problemtica, sinergicamente, da seguinte forma: o Automao completa (Robs) Robs eliminam por completo a necessidade de trabalho humano, sendo em geral o pice da otimizao. Em software, generalizaes de Orientao a Objetos funcionam como robs industriais, eliminando a necessidade de codificao manual de partes de programas. Esta a rea de atuao do jCompany FS Framework. o Automao indireta (Ferramentas) Quando no possvel robotizar, a proviso de ferramentas apropriadas pode maximizar o trabalho humano. Em software, como em qualquer processo industrial, ferramentas de apoio para gerao de artefatos, construo e liberao de executveis, edies etc., automatizam tarefas intermedirias, acelerando a codificao manual de programas. a rea de atuao do jCompany IDE. o Orientao Quando o trabalho meramente intelectual, e mesmo o uso de ferramentas arrojadas no proveja ganhos significativos, a orientao na forma de repasse de experincias e padres histricos de soluo (best-practices) a forma de se maximizar resultados. Em software, como em qualquer processo industrial, a definio de padres de soluo para problemas frequentes, documentao extensiva e roteiros passo a passo ativos e inteligentes, podem orientar os profissionais decisivamente na codificao manual de programas. a rea de atuao do jCompany Patterns & Methods. o Conferncia (Controle de Qualidade) A dupla checagem da qualidade dos produtos intermedirios de um processo evita desperdcio e inclusive a liberao de resultados indesejveis ao mercado. Em software, a codificao de Testes de Unidade funciona como uma rea de controle de qualidade que permeia o processo,

Captulo A1

garantindo continuamente que a codificao manual de segmentos de programas esteja em conformidade. a rea de atuao do jCompany Test for Developer. o Infra-Estrutura (Manuteno e Preservao) Um ambiente de produo que envolva tecnologia nos vrios mbitos citados necessitar de uma contnua monitoria para garantir a lubrificao, fluidez e estabilidade da bancada tecnolgica utilizada. Em software, como em qualquer ambiente de produo industrial, para evitar quedas de rendimento, a infra-estrutura de suporte tecnolgico ao processo precisa se manter estvel e ntegra ao longo do tempo. a rea de atuao do jCompany Configuration Management.

jCompany FS Framework
- Arquitetura de Software Corporativa A Arquitetura de Software aquela parcela da soluo que se encontra pr-definida, implementada e disponvel para os desenvolvedores, antes do incio da construo de aplicaes de negcio. Muito embora seja possvel se definir e construir uma arquitetura de software para somente uma aplicao, os maiores ganhos advm de seu reso em escala, em uma grande organizao. Uma representao de arquitetura exigir diversos ngulos ou vises. A viso que enxerga o jCompany FS Framework, por exemplo, a Viso de Componentes (Component View), que foca nas camadas de componentes que so embalados juntos no executvel da aplicao. Para os melhores resultados, uma Arquitetura de Software Corporativa no deve se restringir a apenas um esquema conceitual ou documento de direcionamentos, mas trazer implementaes concretas em seu nvel de atuao. Em um ambiente receptivo a tcnicas de Orientao a Objetos (OO), como o Java EE, isso possvel principalmente atravs de frameworks que promovam e simplifiquem o uso da arquitetura e que tambm amplifiquem os resultados esperados. - Framework Um framework um conjunto de classes que colaboram entre si de modo a prover um reso abrangente de grandes blocos de comportamento. Por ser reutilizvel e customizvel de forma refinada atravs de diferentes tcnicas OO, um framework permite um ganho impossvel, ou muito difcil, de ser obtido via chamadas de sub-rotinas, reso tpico dos ambientes de desenvolvimento de terceira gerao. Quando concebido com a profundidade e abrangncia necessrias, um bom framework ser o principal representante da Arquitetura de Software Corporativa, uma manifestao concreta de seus objetivos, contribuindo no dia a dia do desenvolvimento para: o o o o Definir fronteiras, evitando devaneios desnecessrios em blocos no homologados de tecnologias; Promover melhores prticas, trazendo atalhos que tornem natural esta opo; Eliminar trabalho repetitivo, generalizando grande parcela das solues; Diminuir a variabilidade indesejvel de solues diferentes para um mesmo tipo de problema, trazendo formas prontas de soluo, customizveis;

Com tudo isso, um bom framework se transforma no agente da arquitetura responsvel por elevar o patamar mnimo de qualidade e produtividade para todos os projetos em seu perfil de atuao . - Framework de Integrao O jCompany FS Framework no um framework comum, mas um framework de integrao. Este tipo de framework funciona uma camada acima de outros, chamados framewoks de base, atuando como um framework de frameworks. Esta robustez arquitetural hoje necessria para fazer frente ao grande aumento de complexidade das tecnologias da era do eBusiness, as chamadas tecnologias Web. Uma das caractersticas fortes de um framework de integrao como o jCompany FS Framework exatamente no reinventar a roda praticando, em seu nvel, a orientao de reso que prega. Ao incorporar frameworks de base de larga aceitao no mercado e se concentrar somente em especializaes holsticas, de mais alto nvel, ele agrega um tremendo valor arquitetura geral ao mesmo tempo em que preserva a cultura de mercado. - Arquitetura de Software com o jCompany FS Framework A Figura A1.2 exibe um diagrama em camadas que representa o esquema bsico da Viso de Componentes da Arquitetura de Software Corporativa, conforme sugerida pelo jCompany. A arquitetura em si representada pelas camadas marcadas com os nmeros (2), (3) e (4).

Introduo ao jCompany Developer Suite

Figura A1.2. Arquitetura em camadas de uma aplicao Java EE com o jCompany Full Stack Framework.

#1. Infra-Estrutura de Software: Camadas de softwares de infra-estrutura, normalmente de domnio da equipe de operao (produo). Camadas da Arquitetura de Software Corporativa #2. Frameworks e utilitrios de base do mundo Open Source: Reso essencial de produtos lderes em sua categoria, em cada camada MVC, para se evitar a reinveno da roda em um nvel mais baixo da arquitetura. Preserva, ainda, a cultura de mercado. #3. jCompany Full Stack Framework Core - Generalizao Commodity: Camada de software provida pelo jCompany atravs de framework que realiza generalizaes integradas de insumos Open Source da camada (2) e as disponibiliza para reso em mais alto nvel. Segue orientaes arquiteturais e de implementao de mercado (MVC, Design Patterns, padres de formulrios, gerncia de transaes, etc.), promovendo melhores prticas de interesse comum a diversos projetos de diversas verticais de negcios. Por isso, chamada de commodity. #4. jCompany Full Stack Framework Bridge - Generalizao da Empresa: Camada de software cuja estrutura provida pelo jCompany atravs de framework de isolamento da camada de baixo, que permite s empresas introduzirem generalizaes e customizaes prprias de seu contexto. Exemplos tpicos so web-design padro, segurana corporativa, pr-configuraes de gateways para acessos comuns (Ex.: mainframes) e ajustes gerais de quaisquer padres do jCompany. chamada tambm de ltima milha por ser a ltima camada da arquitetura. Camadas do Negcio (Core Business) #5. Camada de Core Business: Camada que contm os mdulos reutilizveis de negcio e portiflio de aplicaes que se beneficiam do ganho de escala e padronizao da arquitetura. Deve ser o foco de concentrao de profissionais orientados ao negcio, incluindo criatividade e diferenciaes nicas de cada projeto.

jCompany IDE
- Ambiente Integrado de Desenvolvimento O mdulo jCompany IDE atua no aprimoramento do ambiente de trabalho do desenvolvedor para melhoria de produtividade nas atividades de seu dia a dia, incluindo gerao de artefatos no generalizveis, tais como XHTML de formulrio, mensagens e rtulos, XML etc. Do ponto de vista de sua arquitetura interna, o jCompany IDE parte da mesma filosofia de reso e especializao do jCompany FS Framework. Porm, obviamente, neste caso reutiliza uma pilha de utilitrios Open Source em tempo de desenvolvimento, como exibido na Figura A1.3.

Captulo A1

Figura A1.3. Arquitetura Viso de Desenvolvimento. Estratgia similar Viso de Componentes.

#1. Infra-Estrutura de Software: Camadas de softwares de infra-estrutura, incluindo neste caso tanto o Ambiente Integrado de Desenvolvimento e de gerncia de configurao: a IDE Eclipse e o Maven 3.x. Repare que os plugins JDT, apesar no fazerem parte da plataforma bsica Workbench, so mantidos pela comunidade Eclipse e, por isso, tambm considerados infra-estrutura. #2. Utilitrios de Desenvolvimento - Reso de Matria-Prima Open Source: Camada de softwares reutilizados do mundo Open Source, composta principalmente por plug-ins da IDE Eclipse e utilitrios Maven de base. So considerados recursos de apoio genrico, neutros com relao arquitetura, padres e mtodos do jCompany. #3. Utilitrios de Desenvolvimento Plug-ins de Processo: Camada de software composta por plug-ins da IDE e utilitrios Maven que conhecem a arquitetura do jCompany FS Framework e ainda os padres e mtodos do jCompany Patterns & Methods. Por este motivo, geram artefatos em conformidade com melhores prticas. #4. Utilitrios de Desenvolvimento Customizao da Empresa: Camada de templates que permitem a customizao dos projetos e artefatos gerados, de modo a respeitarem eventuais especificidades introduzidas na camada Bridge da arquitetura (nmero (4) na Figura A1.2, entre outras).

Os utilitrios do jCompany IDE no so componentes para reso a serem includos nos executveis das aplicaes. Por outro lado, aumentam a produtividade dos desenvolvedores nas atividades necessrias para produzirem cdigos e artefatos especficos da sua camada de negcios. Existem duas reas chave para onde o mdulo jCompany IDE traz produtividade diferenciada, indo alm das facilidades genricas propiciadas pelo Eclipse, pelo Maven e pela camada de reso Open Source: o Plugins de Criao Orientados pelo Processo, capazes de produzir uma primeira verso de projetos e artefatos envolvidos em Casos de Uso Padres, que seguem melhores prticas previstas na Arquitetura de Software, Padres e Mtodos Corporativos. Por exemplo, os plug-ins de processo do jCompany IDE geram formulrios JSF, menus, mapeamento Objeto-Relacional, fluxos de navegao padres etc., otimizados e minimalistas em qualidade final de produo. Organizao de projetos e dependncias segundo o padro Maven, incluindo repositrio simplificado e rotinas de construo e liberao rpida via MOJOs (Maven Objects), para diversos Application Servers, levando em conta a Arquitetura de Software Corporativa.

Com isto, o mdulo jCompany IDE prov um Ambiente Integrado de Desenvolvimento inteligente, conhecedor da arquitetura, padres de alto nvel e melhores prticas da organizao. Trata-se de um avano ntido com relao ao que se poderia extrair de IDEs no passado ou do que se pode esperar do Eclipse ou Netbeans com seus plug-ins de edio genricos, incapazes de reforar melhores prticas.

Introduo ao jCompany Developer Suite

jCompany Patterns & Methods


- Padres de Soluo em Alto Nvel Uma outra dimenso de atuao do jCompany o apoio etapa de especificao de aplicaes, que precedem a implementao de cdigo em si. Alm da generalizao da arquitetura de software e da acelerao da IDE, as orientaes nesta rea reduzem prazos de concepo de solues, modelagem e especificao para construo atravs de padres de alto nvel. Mesmo para uma equipe de Analistas-Desenvolvedores que dispensam modelos formais de especificao, os padres em alto nvel do jCompany Patterns & Methods traro maior clareza e orientao na elaborao mental da soluo. Este mdulo constitudo por dezenas de captulos de documentao disponveis no Ajuda On-Line da IDE Eclipse, e ainda por roteiros baseados em Cheat-Sheets, verdadeiros assistentes de processo integrados ao ambiente de desenvolvimento. Eles funcionam como mentores virtuais, guiando desenvolvedores, passo a passo, por caminhos de produtividade e conformidade para a soluo de problemas padronizados. - Casos de Uso Padres O mdulo jCompany Patterns & Methods introduz prticas e traz documentaes que facilitam a identificao e a especificao de Casos de Uso Padres, inclusive com diversas variaes potenciais, expressas em UML na forma de Extenses e Incluses padres, como exemplificado na Figura A1.4.

Figura A1.4. Alguns Casos de Uso, Incluses e Extenses Padres do jCompany Patterns & Methods.

Os Casos de Uso Padres do jCompany partem das ideias de Alistair Cockburn [Cockburn, Alistair 2003], evoluindo radicalmente seus conceitos de Caso de Uso CRUD e Caso de Uso Parametrizado, tanto conceitualmente como atravs de uma soluo de implementao automatizada. - Colaboraes Padres Os Casos de Uso Padres do jCompany esto definidos em nvel lgico. Eles so, por exemplo, teis mesmo em outros paradigmas tecnolgicos que no o Java EE. Mas o jCompany traz tambm padres de realizao de Casos de Uso completos voltados para especificao para Java EE especificamente, chamados Colaboraes Padres. As Colaboraes so esteretipos de Caso de Uso, representadas de forma pontilhada na UML, que simbolizam especificaes de projeto fsico ou realizaes de um Caso de Uso.

Captulo A1

O mdulo jCompany FS Framework implementa diretamente estas Colaboraes Padres definidas atravs de generalizaes OO de alto nvel, para a parte Java envolvida. Em seguida o mdulo jCompany IDE gera os artefatos no generalizveis, como os numerados na Figura A1.5, provendo um grande ndice de automao final.

Figura A1.5. Viso estrutural de uma Colaborao, com artefatos Java EE envolvidos.

Esta sinergia entre projetos lgico, fsico e implementao soluciona de forma elegante um clssico problema do desenvolvimento de software: a transio da etapa de Elaborao para Construo. - Padres de Agregaes de Entidades O jCompany Patterns & Methods traz ainda padres OO para o modelo de Domnio (Classes que representam Entidades do Negcio), partindo das conceituaes de Eric Evans [Evans, Erick 2004] conhecidas como Domain-Driven Design (DDD), introduzindo aprimoramentos e automaes, tambm neste mbito. Atravs de esteretipos para Agregaes de Classes que ditam comportamentos importantes, tambm generalizados no jCompany FS Framework, o jCompany promove o uso de conceitos importantes de Orientao a Objetos nesta nobre camada da aplicao.

Introduo ao jCompany Developer Suite

Figura A1.6. Agregao de Entidades com esteretipos que definem padres da Arquitetura.

- Padres de Interfaces com o Usurio. O jCompany Patterns & Methods traz ainda padres de Interface com o Usurio, voltados para aplicaes Web, baseados em padres de usabilidade e ergonomia clssicos de mercado, padres W3C e preceitos de Organizao & Mtodos especialmente otimizados para viabilizar entradas de dados massivas, tpicas do mundo corporativo em Navegadores Web.

Figura A1.7. Padres de formulrio de entrada de dados.

Alm de implementaes genricas para padres de formulrio e operaes, padres de leiaute tambm so definidos e implementados genericamente, trazendo uma proposta visual e de ergonomia para toda a aplicao.

Captulo A1

Figura A1.8. Leiautes altamente personalizveis, incluindo pele e internacionalizao.

jCompany Test for Developer


- Testes de Unidade O mdulo jCompany Test for Developer traz um framework para apoio ao desenvolvimento de Testes de Unidade para arquitetura MVC2-P (Model-View-Controller type 2 with Persistence), baseado principalmente nos frameworks de base JUnit e EasyMock. Ele tambm segue a mesma filosofia de reso de matria-prima Open Source do jCompany FS Framework, porm em escala bem reduzida de complexidade, como ilustrado na Figura A1.9.

Figura A1.9. Arquitetura de Desenvolvimento de Testes de Unidade.

#1. Infra-Estrutura de Software: Camadas de softwares de infra-estrutura para rodar Testes de Unidade. Inclui a IDE Eclipse para execuo interativa e o Maven para execuo batch e coverage. #2. Arquitetura de Testes de Unidade - Reso de Matria-Prima Open Source: Camada de softwares reutilizados do mundo Open Source, composta principalmente por JUnit, EasyMock e utilitrio de medio de cobertura dos testes (Coverage). #3. Arquitetura de Testes de Unidade Framework de Integrao: Framework provendo uma fina camada de especializao e melhores prticas de Testes de Unidade para camadas Controle, Modelo, Domnio e Persistncia.

Traz tambm classes Stubs (Mocks concretos) para simular objetos complexos de controle, tais como HttpRequest.

Introduo ao jCompany Developer Suite

Muito embora se trate do mdulo da sute com menor contribuio quando comparado aos demais, o seu bom uso pode ser de grande valor para reforar qualidade e prticas de refactoring ao longo das manutenes.

jCompany Configuration Management


- Gerncia de Configurao Dificilmente um profissional iniciante na rea de Desenvolvimento de Aplicaes de Software corporativo compreender porque o mdulo jCompany Configuration Management tem o mesmo peso em termos de contribuio que o mdulo jCompany IDE, como ilustrado na Figura A1.1. O fato que, dentro da disciplina de Gerncia de Configurao, to enfatizada em certificaes de maturidade tais como CMMI, esto questes chave para manuteno da integridade (e, consequentemente, da qualidade e produtividade geral) de todos os outros mdulos da soluo, ao longo do tempo, garantindo: o o Integrao dos Itens de Configurao Controle de Verses (Integridade Continuada)

Em uma sute altamente integrada, como vemos na Figura A1.10, todos os componentes envolvidos, em todas as camadas de cada mdulo da soluo, precisam estar funcionando harmonicamente. Para tanto, necessitam no somente de estarem verses apropriadas, homologadas juntamente com as verses dos demais componentes, mas ainda pr-configurados para funcionamento imediato com pouco esforo.

Figura A1.10. Itens de configurao controlados no jCompany Developer Suite.

Manter uma instalao e controle de verso unificado para um universo de mais de quarenta projetos de origem distinta, e mais de uma centena de itens de configurao (projetos, componentes, captulos de documentao, roteiro Cheat-Sheet, plug-ins etc.), como o caso do jCompany Developer Suite, uma tarefa herclea. Especialmente quando se passa a contar com uma base instalada que exige manutenes de linhas de base em paralelo. Em grandes organizaes, onde de se esperar o desenvolvimento de dezenas ou centenas de projetos sobre uma mesma Arquitetura de Software Corporativa, a simples terceirizao de boa parte deste trabalho de embalagem integrada de software Open Source e do controle de sua Linha de Base, de forma unificada, pode compensar o uso do jCompany e retornar o investimento.

Open Source Application Lifecycle Management


Em uma viso mais ampla de um Processo de Desenvolvimento de Sistemas (PDS), o jCompany Developer Suite est inserido na fase de Construo. Esta ser, portanto, a fase do PDS enfatizada neste livro, muito embora venhamos a analisar elementos da fase de Elaborao para compreender os padres de especificao que iremos implementar, tais como Modelo de Classes, de Casos de Uso e Colaboraes.

Captulo A1

Mas esta ainda uma cobertura pequena de ferramental para a automao de um PDS completo. Uma viso holstica englobaria gerenciamento de projetos, requisitos, automao e controle da qualidade, segurana, monitoria em produo, atendimento aos usurios (estatsticas de uso, erros, sugestes) etc. etc.

Figura A1.11. Ciclo de vida de gerenciamento de aplicaes de software.

Solues para este tipo de abrangncia topo-de-linha so conhecidas no mercado como produtos para Application Lifecycle Management (ALM). Com elas, se torna possvel uma gesto integrada via ferramentas que oferecem rastreamento entre artefatos diversos produzidos e consumidos em cada fase, alm de gerenciamento de mudanas com anlise de impacto, clculos de ROI, dentre outros benefcios. Apesar de serem objetos de desejo, as poucas solues de mercado na rea de ALM so ainda de cdigo fechado e incorrem facilmente em licenciamentos milionrios. Um outro agravante o excesso de peso que estas sutes tradicionais costumam trazer. Por estes motivos, customizaes refinadas logo se manifestam como difceis, seno impossveis, de serem realizadas, culminando em implantaes parciais (subutilizao) ou fracassos completos. Como alternativa ao cdigo fechado, a Powerlogic dispe de mais produtos que se integram com o jCompany para atendimento a outras fases e disciplinas de um PDS, todas com a mesma filosofia de integrao e especializao de insumos Open Source, em cdigo aberto. No o objetivo deste livro uma discusso com este nvel de abrangncia, mas vale pena apresentarmos este outros produtos: - jCompany QA Suite Integra e especializa frameworks e ferramentas lderes do mundo Open Source para a rea de Garantia da Qualidade (Quality Assurance QA), oferecendo produtividade diferenciada na automao da averiguao de qualidade, que inclui testes funcionais, de unidade e esttico para averiguao de padres e convenes de cdigo. Alm disso, prov um ambiente de integrao contnua e de trabalho em equipe pronto para uso, com controle de verso de executveis ultra-simplificado, incluindo versionamento a um clique (one-click versioning) e liberao a um clique (one-click deploy). O jCompany QA Suite integra os produtos Hudson/Jenkis, Sonar, Maven, Sellenium e SVN em um ambiente suportado e integrado de Gerncia de Configurao e Automao. jCompany Production Suite composto por dois produtos: jCompany Security: Permite a definio do controle de acesso da aplicao de forma totalmente dinmica, sem que desenvolvedores declarem ou necessitem de programar polticas bsicas de acesso. Ex: usurios com papel A no podem acessar a URL /notafiscal, usurios com papel B no podem ver o campo salario" na URL /funcionario, somente usurios com papel Presidente e certificado digital X podem acessar a URL /demofinanceiro. O jCompany Security importa automaticamente todas as URLs de arquivos executveis (WAR e EAR), permite o cadastro interativo de regras atravs de uma aplicao e, a partir destas regras, realiza simultaneamente o conforto visual (esconder itens de menu, botes, campos dinamicamente) e a segurana efetiva no servidor (JAAS).

Introduo ao jCompany Developer Suite

jCompany Monitor: Permite a coleta de cliques de navegao e transao do usurio (HTTP GETs e POSTs), contabilizando acessos de forma assncrona, via JMS, o que garante mxima escalabilidade da soluo, mesmo para grandes clusters de Application Servers, sem impacto na performance e disponibilidade das aplicaes. Alm da auditoria de histria de navegao de todos os usurios, em todas as diversas sesses de uso, monitora ainda a disponibilidade de servios diversos via agentes de monitoria, tais como disponibilidade do servio do SGBD A, servio de correio B, servio JMS C ou da aplicao X nos Application Servers D e E, dentre outras facilidades. - eCompany Portal Suite uma soluo de Enterprise Information Portal Web 2.0 com facilidades diversas de Gesto de Contedo, Colaborao e Groupware em geral, que agregam informaes de toda a sute de ALM em um nico ponto. Alm disso, inclui Portlets que podem exibir formulrios desenvolvidos com jCompany Developer Suite, integrando segurana e permitindo reorganizao da disposio de aplicaes para usurios de deciso (gerentes, coordenadores, diretores etc.). O eCompany Portal embute ainda uma soluo de Contact-Center para permitir a recepo e triagem de incidncias de erros, sugestes e pedido de melhorias por parte de usurios, mantendo esta s ocorrncias rastreveis at seus requisitos originais, produtos e componentes de produto. Trata-se de um sistema completo para identificao, triagem, atendimento e gerao de base de conhecimento rastrevel, para bugs, melhorias e quaisquer outros feedbacks dos usurios. - eCompany Reports uma soluo para construo, escalonamento e disponibilizao de relatrios para Web, baseada no Eclipse BIRT e escalonador Quartz, que permite que sejam planejadas execues de relatrios com argumentos pr-definidos e lista de distribuio, de forma batch, de modo a evitar sobrecargas em aplicaes on-line. O eCompany Reports traz um instrumento de flexibilidade para se criar e disponibilizar relatrios customizados externos aplicao e que ainda assim se integram visualmente aplicao - trazendo grande produtividade para a produo e manuteno destes artefatos. O eCompany Reports utiliza o Eclipse BIRT e servio BIRT Viewer como base. Relatrios BIRT podem incluir grficos, quebras e indicadores visuais sofisticados, em formato PDF ou HTML.

Captulo A1

Sumrio Neste captulo, discutimos brevemente os desafios que as organizaes vm enfrentando para absorverem inovaes tecnolgicas em um ritmo competitivo. Caracterizamos como tentaremos contribuir nesta rea e o que queremos dizer por tirar o mximo do Java EE OpenSource. Apresentamos o jCompany Developer Suite (assim como o JAGUAR) como uma soluo completa para construo de aplicaes Java EE, com base em arquitetura Open Source customizvel, em suas diversas dimenses de atuao. Prosseguimos analisando a arquitetura de alto nvel de todos os seus mdulos: jCompany FS Framework, jCompany IDE, jCompany Patterns & Methods, jCompany Test For Developer e jCompany Configuration Management. Por fim, vimos como o jCompany se encaixa em uma estratgia mais ampla, de Open Source Application Lifecycle Management, contextualizando o produto dentro do espectro maior da soluo Powerlogic jALM.

Вам также может понравиться