jcompany developer suite - 01

Upload: augustonunes

Post on 03-Apr-2018

230 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/28/2019 JCompany Developer Suite - 01

    1/19

    1

  • 7/28/2019 JCompany Developer Suite - 01

    2/19

    2

    A.Apresentao

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

    Mdulo

    A

  • 7/28/2019 JCompany Developer Suite - 01

    3/19

  • 7/28/2019 JCompany Developer Suite - 01

    4/19

    4

    As oportunidades do eBusiness

    AAs empresas tm sido desafiadas como nunca a competirem em escala global e, para tal, o domniodas tecnologias Web no mais algo do qual possam prescindir. Saindo da automao das tarefasrotineiras 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 eassimilar.

    Neste cenrio atual de acelerao da histria, os negcios so desafiados primariamente pela famosapreviso de Gordon Moore conhecida com a Lei de Moore: a capacidade do hardware continua adobrar a cada dois anos, sem aumento dos custos, e com ela tambm o espao de inovao dosoftware. Enquanto esta lei durar e ir por, pelo menos, mais 20 anos - as oportunidades criativas narea de software continuaro excepcionalmente anabolizadas, um poderoso arsenal competitivo paraempresas geis e em aprendizado constante que saibam utiliz-lo.

    E percebamos bem: software se constri com outros softwares. Como um produto invisvel eabstrato, 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 aplicaesde 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-Sitewww.salon.com: software difcil porqueno se consegue atualizar os profissionais de desenvolvimento na mesma velocidade em que aspossibilidades se atualizam.

    (...) por isso que no existe Lei de Moore para software. Chips podem dobrar de capacidade a cada ano oudois; 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 aterceirizao quase total desta expertise tecnolgica... O problema que este modelo de distanciamentoda 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 nonvel 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 deseus fornecedores, construdas rapidamente para um projeto s, mas difceis ou impossveis de serem mantidasque 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 outrosfatores 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 domarnovas 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 edesenvolvedores de software a resolver problemas corporativos na velocidade dos tempos atuais.

    Captulo

    1A1Introduo ao jCompany

    Developer Suite

    http://www.salon.com/http://www.salon.com/http://www.salon.com/http://www.salon.com/
  • 7/28/2019 JCompany Developer Suite - 01

    5/19

    Captulo A1

    Tirando o mximo do Java EE Open Source

    As tecnologias baseadas no Java EE, especialmente em seu ramo Open Source, representam hoje umafonte bvia de inovao pragmtica que no deve ser dispensada. No entanto, em sua maioriaesta fonte est disponvel em forma bruta, exigindo conhecimento tcnico no somente para seu acesso euso bsico, mas principalmente para especializaes que permitam sua aplicao contextualizada eotimizada.

    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 daarquitetura corporativa.

    Felizmente, so estas as lacunas que ojCompanyDeveloper Suite procura preencher. Seu uso duranteo livro nos possibilitar almejar resultados rpidos e traar uma estratgia de assimilao gradual, semabrirmos 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 nossospilares de sustentao.

    -Java EE como mercado comum e plataforma de flexibilidadeO Java EE, como arquitetura tecnolgica de base adotada por praticamente toda a indstria (com anotvel, mas insuficiente, exceo da Microsoft), tornou-se fundamental para homogeneizar acomunicao, 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 tcnicaentre 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 osurgimento do movimento Open Source, este por si um advento de valor inestimvel para omercado comprador de software.

    -Tirando o mximo do Java EE para os negciosH 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 tecnologiapara 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 doscasos, em um tpico raciocnio 20/80 de Paretto.

    Vejamos alguns extremos de postura com relao internalizao de inovao que encontramosatualmente:

    o Por um lado, existem departamentos de Tecnologia da Informao (TI) que absorvem inovaestecnolgicas de forma lenta ou mediana e so at considerados satisfatrios, tolerados pelagesto de suas empresas.

    Em parte isso se explica pelos benefcios que a prpria Lei de Moore, por si, j promove: aprpria evoluo orgnica do hardware e a atualizao de verses de tecnologias de basepermitem s reas de TI hoje apresentarem algum resultado, o que preserva em muitas aacomodao de jogar pelo empate. Um bom exemplo so empresas que preservam geraesobsoletas 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 apreo de ouro, somente por inrcia tecnolgica!).

    o Mas no outro extremo, tambm muito perigoso, esto os que chamamos de compradores detecnologia fashion, que costumam ser coadjuvantes dos verdadeiros protagonistas, fornecedoresde software que supervalorizam tecnologias emergentes em produtos repletos de excessos deengenharia (overenginnering).

    Defendemos uma posio mediana. Nosso objetivo de tirar o mximo do Java EE OpenSource no deveser confundido com apreender tecnologia pela tecnologia, mas como uma busca por absorver aquelasfraes de novas tecnologias de software que realmente so um meio oportuno para o fim maior, deviabilizar 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 umamisso nobre que caber nica e exclusivamente ao desenvolvedor nela contextualizado. Mas faremos oque nos possvel: trazer solues que poupam boa parcela de tempo de desenvolvimento deuma forma geral para que profissionais de TI possam exercitar melhor sua criatividade com foco em

  • 7/28/2019 JCompany Developer Suite - 01

    6/19

    Introduo ao jCompany Developer Suite

    negcios. Faremos isso atravs de reso de solues quase-completas e altamente produtivas, naforma 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 umaboa parcela de problemas comuns a todas elas, presentes em camadas que compem a partearquitetural commodity da soluo.

    Com a experincia, comea-se a distinguir mais claramente quais so estas camadas que devem serreutilizadas e quais so as que devem ser criadas. Na maior parte dos casos, completa insensatezdespender-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 comresultado 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 concentradasonde deveriam: nas camadas de software que refletem o Core Business da corporao.

    -Open Source como estratgia de projetosPara o mundo corporativo, o movimento Open Source hoje compreendido principalmente como umaestratgia de projeto, mais do que de reduo de custos, como fora em seu incio. No estgio atualdo movimento, os tcnicos mais informados e inclusive muitos CIOs - j reconhecem a importnciadecisiva 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 fechadosrepresentam verdadeiros Firewalls de Projeto. Barram solues que exigem adaptao e flexibilidade emnveis 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 verdadeirarevoluo scio-cultural na rea de TI, com seus fruns de troca de conhecimentos, padres e tcnicasde trabalho em nveis inditos. Neste aspecto, um de nossos principais aliados no desafio bsico deminimizar 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 nojCompany 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 nomejCompany. Obs.: capturas de telas podero exibir logotipos tanto dojCompany quanto do Jaguar, oque no tem efeito prtico no contedo. Mais detalhes do JAGUAR podem ser obtidos na comunidadeJAGUAR do Portal do Software Pblico ou emhttp://www.powerlogic.org.

    O jCompany Developer Suite

    -Uma breve introduo ao jCompanyDos produtos Java EE Open Source como eles existem at seu estgio de contextualizao ideal, emqualquer empresa, h um longo caminho a ser percorrido. Quando no se reconhece este fato, porsuperestimao das tecnologias ou subestimao dos nveis de exigncia corporativos de TI, o resultadoaparece na forma de arquiteturas medocres, insuficientes para se evitar mesmo tragdias bsicas.

    O surgimento, em 2003, dojCompany Developer Suite foi uma resposta da Powerlogic a clientes queansiavam por um transporte mais rpido que os ajudasse a cortar caminho nesta jornada, internalizar eotimizar 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.

    http://www.softwarepublico.gov.br/http://www.softwarepublico.gov.br/http://www.softwarepublico.gov.br/http://www.powerlogic.org/http://www.powerlogic.org/http://www.powerlogic.org/http://www.powerlogic.org/http://www.softwarepublico.gov.br/
  • 7/28/2019 JCompany Developer Suite - 01

    7/19

    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, viabilizouuma terceirizao gerencivel da complexidade envolvida, sem perda dos benefcios culturais e daliberdade do Open Source.

    Mas um erro bsico seria imaginar ojCompany como um simples empacotamento dos projetos OpenSource que ele reutiliza. Tais projetos de base para reuso so instalados juntamente com a suteunicamente para comodidade do cliente, que deste modo passa a contar com um ambiente Open Sourceimediatamentepronto para uso, integrado e homologado.

    OjCompany em si, como veremos, composto por uma quantidade razovel de projetos Java EEespecficos, plugins Eclipse, mtodos e padres, solues de integrao e gerncia de configuraoextremamente trabalhosas, dentre vrios outros suplementos de alto valor agregado, mantidos pelaequipe de desenvolvimento dedicada da Powerlogic. Esta equipe formada por dezenas dedesenvolvedores, profissionais de QA, Web-Design e de Produtao, trabalhando em um ambientecertificado em MPS.Br nvel C (CMMI-3) com base em prticas geis (SCRUM), condizentes com o mundoOpen Source.

    Neste modelo, os clientes so convidados a participarem ativamente, de forma colaborativa. Qualquerprofissional de clientes se engajar como um desenvolvedor colaborativo (prosumer) atravs do Portal doSoftware Pblico. Neste patamar ele tem acesso ao repositrio de fontes oficial do produto, podendoacelerar 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-produtividadeOjCompanyDeveloper Suite uma soluo bastante eficaz para o aprimoramento dos resultadosquando se trata de desenvolvimento de aplicaes de software para Web em escala corporativa. Trata-sede uma sute de produtos multidimensional que trabalha a problemtica da produtividade equalidade por diversos ngulos.

    Muito embora seja algumas vezes, erroneamente compreendido como um framework, ojCompany 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 mdulojCompany Full Stack Framework, com uma alta parcela decontribuio, mas diversos outros mdulos importantes e integrados proporcionam a sinergia responsvelpelo resultado final diferenciado da sutejCompany.

    Quando comparado ao desempenho de uma soluo tpica para desenvolvimento Java EE, caracterizadapelo 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 nopodem incentivar melhores prticas), o jCompany pode apresentar nveis de hiper-produtividade.

    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 decentenas de projetos corporativos em produo, ojCompany veio reduzindo prazos da ordem degrandeza de meses para semanas, e com aumento considervel da qualidade: mais flexibilidade,escalabilidade, performance, usabilidade e estabilidade.

    -Qualidade para produtividade sustentvelSabe-se que a super nfase em produtividade e tempo de resposta ao mercado (time-to-market), semas mnimas restries de qualidade, conduz sndrome da primeira verso: Aplicaes entregues noprazo, apresentando problemas de estabilidade, performance, no conformidades e dificuldades sriasem sua manuteno, que terminam por cobrar de volta todos os ganhos imaginrios de produtividade,

  • 7/28/2019 JCompany Developer Suite - 01

    8/19

    Introduo ao jCompany Developer Suite

    com juros e correo monetria. o que se termina por reconhecer como pressa, no comoprodutividade.

    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 arquiteturade base MVC (Model-View-Controller), importante para maior flexibilidade em evolues e para se mantera complexidade sob controle, mas no necessariamente para se desenvolver mais rpido.

    Por outro lado, quase todas as preocupaes com produtividade dojCompany tambm consideram oaspecto qualidade.

    Por exemplo, antes de usar tcnicas de gerao de artefatos, ojCompany esgota prioritariamente aspossibilidades mais sofisticadas da Orientao a Objetos (OO). Deste modo, apesar de aumentar acurva 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), aOrientao a Objetos tambm diminui a probabilidade de erros.

    -Produtividade corporativa em escala industrialPara uma empresa que possua tcnicos com alta proficincia em Java EE, a maneira mais rpida para seconstruir 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 emJava EE, para um mesmo problema, esta liberdade terminar por permitir a proliferao de diversasarquiteturas individuais, que dificultam o desenvolvimento em escala. Qualidade flutuante, problemasem requisitos de integrao e dificuldades nas fases de manuteno (turn-overs complexos) costumamser 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 umaprodutividade industrial, sustentvel. No mdio prazo, este o nico caminho. Neste sentido, ojCompany se torna um grande catalisador, garantindo uma pauta mnima de qualidade, produtividade epadronizao em um nvel de profundidade que, realmente, garante diminuio da variabilidadeindesejvel 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, daseguinte forma:

    o Automao completa (Robs)Robs eliminam por completo a necessidade de trabalho humano, sendo em geral o pice daotimizao. Em software, generalizaes de Orientao a Objetos funcionam como robsindustriais, eliminando a necessidade de codificao manual de partes de programas. Esta area de atuao dojCompanyFS Framework.

    o Automao indireta (Ferramentas)Quando no possvel robotizar, a proviso de ferramentas apropriadas pode maximizar otrabalho humano. Em software, como em qualquer processo industrial, ferramentas de apoiopara gerao de artefatos, construo e liberao de executveis, edies etc., automatizamtarefas intermedirias, acelerando a codificao manual de programas. a rea de atuao dojCompanyIDE.

    o OrientaoQuando o trabalho meramente intelectual, e mesmo o uso de ferramentas arrojadas noproveja ganhos significativos, a orientao na forma de repasse de experincias e padreshistricos de soluo (best-practices) a forma de se maximizar resultados. Em software, comoem qualquer processo industrial, a definio de padres de soluo para problemas frequentes,documentao extensiva e roteiros passo a passo ativos e inteligentes, podem orientar osprofissionais decisivamente na codificao manual de programas. a rea de atuao dojCompanyPatterns & Methods.

    o Conferncia (Controle de Qualidade)A dupla checagem da qualidade dos produtos intermedirios de um processo evita desperdcioe inclusive a liberao de resultados indesejveis ao mercado. Em software, a codificao deTestes de Unidade funciona como uma rea de controle de qualidade que permeia o processo,

  • 7/28/2019 JCompany Developer Suite - 01

    9/19

    Captulo A1

    garantindo continuamente que a codificao manual de segmentos de programas esteja emconformidade. a rea de atuao dojCompanyTest for Developer.

    o Infra-Estrutura (Manuteno e Preservao)Um ambiente de produo que envolva tecnologia nos vrios mbitos citados necessitar de umacontnua monitoria para garantir a lubrificao, fluidez e estabilidade da bancadatecnolgica utilizada. Em software, como em qualquer ambiente de produo industrial, paraevitar 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 dojCompanyConfigurationManagement.

    jCompany FS Framework

    -Arquitetura de Software CorporativaA Arquitetura de Software aquela parcela da soluo que se encontra pr-definida, implementada edisponvel para os desenvolvedores, antes do incio da construo de aplicaes de negcio. Muitoembora seja possvel se definir e construir uma arquitetura de software para somente uma aplicao, osmaiores ganhos advm de seu reso em escala, em uma grande organizao.

    Uma representao de arquitetura exigir diversos ngulos ou vises. A viso que enxerga ojCompanyFS 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 apenasum esquema conceitual ou documento de direcionamentos, mas trazer implementaes concretas em seunvel 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 daarquitetura e que tambm amplifiquem os resultados esperados.

    -FrameworkUm framework um conjunto de classes que colaboram entre si de modo a prover um reso abrangentede grandes blocos de comportamento. Por ser reutilizvel e customizvel de forma refinada atravs dediferentes tcnicas OO, um framework permite um ganho impossvel, ou muito difcil, de ser obtido viachamadas 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 principalrepresentante da Arquitetura de Software Corporativa, uma manifestao concreta de seus objetivos,contribuindo no dia a dia do desenvolvimento para:

    o Definir fronteiras, evitando devaneios desnecessrios em blocos no homologados detecnologias;

    o Promover melhores prticas, trazendo atalhos que tornem natural esta opo;o Eliminar trabalho repetitivo, generalizando grande parcela das solues;o 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 opatamar mnimo de qualidade e produtividade para todos os projetos em seu perfil de atuao.

    -Framework de IntegraoOjCompanyFS Frameworkno um framework comum, mas um framework de integrao. Estetipo de framework funciona uma camada acima de outros, chamados framewoks de base, atuando comoum framework de frameworks. Esta robustez arquitetural hoje necessria para fazer frente ao grandeaumento de complexidade das tecnologias da era do eBusiness, as chamadas tecnologias Web.

    Uma das caractersticas fortes de um framework de integrao como ojCompany FS Framework exatamente no reinventar a roda praticando, em seu nvel, a orientao de reso que prega. Aoincorporar frameworks de base de larga aceitao no mercado e se concentrar somente emespecializaes holsticas, de mais alto nvel, ele agrega um tremendo valor arquitetura geral aomesmo tempo em que preserva a cultura de mercado.

    -Arquitetura de Software com o jCompany FS FrameworkA Figura A1.2 exibe um diagrama em camadas que representa o esquema bsico da Viso deComponentes da Arquitetura de Software Corporativa, conforme sugerida pelojCompany. Aarquitetura em si representada pelas camadas marcadas com os nmeros (2), (3) e (4).

  • 7/28/2019 JCompany Developer Suite - 01

    10/19

    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 daequipe 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 suacategoria, em cada camada MVC, para se evitar a reinveno da roda em um nvel mais baixo daarquitetura. Preserva, ainda, a cultura de mercado.

    #3. jCompany Full Stack Framework Core - Generalizao Commodity: Camada de software providapelojCompany atravs de framework que realiza generalizaes integradas de insumos Open Source dacamada (2) e as disponibiliza para reso em mais alto nvel. Segue orientaes arquiteturais e deimplementao 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 cujaestrutura provida pelojCompany atravs de framework de isolamento da camada de baixo, que permites empresas introduzirem generalizaes e customizaes prprias de seu contexto. Exemplos tpicos soweb-design padro, segurana corporativa, pr-configuraes de gateways para acessos comuns (Ex.:mainframes) e ajustes gerais de quaisquer padres dojCompany. chamada tambm de ltima milhapor 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 deaplicaes que se beneficiam do ganho de escala e padronizao da arquitetura. Deve ser o foco deconcentrao de profissionais orientados ao negcio, incluindo criatividade e diferenciaes nicas de cadaprojeto.

    jCompany IDE

    -Ambiente Integrado de DesenvolvimentoO mdulojCompanyIDE atua no aprimoramento do ambiente de trabalho do desenvolvedor paramelhoria de produtividade nas atividades de seu dia a dia, incluindo gerao de artefatos nogeneralizveis, tais como XHTML de formulrio, mensagens e rtulos, XML etc.

    Do ponto de vista de sua arquitetura interna, ojCompanyIDEparte da mesma filosofia de reso eespecializao dojCompanyFS Framework. Porm, obviamente, neste caso reutiliza uma pilha deutilitrios Open Source em tempo de desenvolvimento, como exibido na Figura A1.3.

  • 7/28/2019 JCompany Developer Suite - 01

    11/19

    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 oAmbiente 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 pelacomunidade Eclipse e, por isso, tambm considerados infra-estrutura.

    #2. Utilitrios de Desenvolvimento - Reso de Matria-Prima Open Source: Camada de softwaresreutilizados do mundo Open Source, composta principalmente por plug-ins da IDE Eclipse e utilitrios Mavende base. So considerados recursos de apoio genrico, neutros com relao arquitetura, padres emtodos dojCompany.

    #3. Utilitrios de Desenvolvimento Plug-ins de Processo: Camada de software composta por plug-ins daIDE e utilitrios Maven que conhecem a arquitetura dojCompany FS Framework e ainda os padres emtodos dojCompany Patterns & Methods. Por este motivo, geram artefatos em conformidade com

    melhores prticas.

    #4. Utilitrios de Desenvolvimento Customizao da Empresa: Camada de templates que permitem acustomizao dos projetos e artefatos gerados, de modo a respeitarem eventuais especificidadesintroduzidas na camada Bridge da arquitetura (nmero (4) na Figura A1.2, entre outras).

    Os utilitrios dojCompany IDE no so componentes para reso a serem includos nos executveis dasaplicaes. Por outro lado, aumentam a produtividade dos desenvolvedores nas atividadesnecessrias para produzirem cdigos e artefatos especficos da sua camada de negcios.

    Existem duas reas chave para onde o mdulojCompany IDE traz produtividade diferenciada, indoalm das facilidades genricas propiciadas pelo Eclipse, pelo Maven e pela camada de reso OpenSource:

    o Plugins de Criao Orientados pelo Processo, capazes de produzir uma primeira versode projetos e artefatos envolvidos em Casos de Uso Padres, que seguem melhores prticasprevistas na Arquitetura de Software, Padres e Mtodos Corporativos. Por exemplo, os plug-insde processo dojCompany IDE geram formulrios JSF, menus, mapeamento Objeto-Relacional,fluxos de navegao padres etc., otimizados e minimalistas em qualidade final de produo.

    o Organizao de projetos e dependncias segundo o padro Maven, incluindo repositriosimplificado e rotinas de construo e liberao rpida via MOJOs (Maven Objects), para diversosApplication Servers, levando em conta a Arquitetura de Software Corporativa.

    Com isto, o mdulojCompany IDEprov 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 reforarmelhores prticas.

  • 7/28/2019 JCompany Developer Suite - 01

    12/19

    Introduo ao jCompany Developer Suite

    jCompany Patterns & Methods

    -Padres de Soluo em Alto NvelUma outra dimenso de atuao dojCompany o apoio etapa de especificao de aplicaes, queprecedem a implementao de cdigo em si. Alm da generalizao da arquitetura de software e daacelerao da IDE, as orientaes nesta rea reduzem prazos de concepo de solues, modelagem eespecificao para construo atravs de padres de alto nvel.

    Mesmo para uma equipe de Analistas-Desenvolvedoresque dispensam modelos formais deespecificao, os padres em alto nvel dojCompanyPatterns & Methods traro maior clareza eorientao na elaborao mental da soluo.

    Este mdulo constitudo por dezenas de captulos de documentao disponveis no Ajuda On-Line daIDE Eclipse, e ainda por roteiros baseados em Cheat-Sheets, verdadeiros assistentes de processointegrados ao ambiente de desenvolvimento. Eles funcionam como mentores virtuais, guiandodesenvolvedores, passo a passo, por caminhos de produtividade e conformidade para a soluo deproblemas padronizados.

    -Casos de Uso PadresO mdulojCompanyPatterns & Methods introduz prticas e traz documentaes que facilitam aidentificao 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 naFigura A1.4.

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

    Os Casos de Uso Padres dojCompany partem das ideias de Alistair Cockburn [Cockburn, Alistair 2003],evoluindo radicalmente seus conceitos de Caso de Uso CRUD e Caso de Uso Parametrizado, tantoconceitualmente como atravs de uma soluo de implementao automatizada.

    -Colaboraes PadresOs Casos de Uso Padres dojCompany esto definidos em nvel lgico. Eles so, por exemplo, teismesmo em outros paradigmas tecnolgicos que no o Java EE.

    Mas ojCompanytraz tambm padres de realizao de Casos de Uso completos voltados para

    especificao para Java EE especificamente, chamados Colaboraes Padres. As Colaboraes soesteretipos de Caso de Uso, representadas de forma pontilhada na UML, que simbolizamespecificaes de projeto fsicoou realizaes de um Caso de Uso.

  • 7/28/2019 JCompany Developer Suite - 01

    13/19

    Captulo A1

    O mdulojCompanyFS Framework implementa diretamente estas Colaboraes Padres definidasatravs de generalizaes OO de alto nvel, para a parte Java envolvida. Em seguida o mdulojCompany IDE gera os artefatos no generalizveis, como os numerados na Figura A1.5, provendo umgrande 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 EntidadesOjCompanyPatterns & Methods traz ainda padres OO para o modelo de Domnio (Classes querepresentam Entidades do Negcio), partindo das conceituaes de Eric Evans [Evans, Erick 2004]conhecidas como Domain-Driven Design (DDD), introduzindo aprimoramentos e automaes, tambmneste mbito.

    Atravs de esteretipos para Agregaes de Classes que ditam comportamentos importantes, tambmgeneralizados nojCompanyFS Framework, ojCompany promove o uso de conceitos importantes deOrientao a Objetos nesta nobre camada da aplicao.

  • 7/28/2019 JCompany Developer Suite - 01

    14/19

    Introduo ao jCompany Developer Suite

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

    -Padres de Interfaces com o Usurio.OjCompanyPatterns & Methods traz ainda padres de Interface com o Usurio, voltados paraaplicaes Web, baseados em padres de usabilidade e ergonomia clssicos de mercado, padres W3C epreceitos de Organizao & Mtodos especialmente otimizados para viabilizar entradas de dadosmassivas, 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 tambmso definidos e implementados genericamente, trazendo uma proposta visual e de ergonomia para toda aaplicao.

  • 7/28/2019 JCompany Developer Suite - 01

    15/19

    Captulo A1

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

    jCompany Test for Developer

    -Testes de UnidadeO mdulojCompany Test for Developer traz um framework para apoio ao desenvolvimento de Testesde Unidade para arquitetura MVC2-P (Model-View-Controller type 2 with Persistence), baseadoprincipalmente nos frameworks de base JUnit e EasyMock.

    Ele tambm segue a mesma filosofia de reso de matria-prima Open Source dojCompany FSFramework, 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 reutilizadosdo mundo Open Source, composta principalmente por JUnit, EasyMock e utilitrio de medio de coberturados testes (Coverage).

    #3. Arquitetura de Testes de Unidade Framework de Integrao: Framework provendo uma fina camada deespecializao e melhores prticas de Testes de Unidadepara camadas Controle, Modelo, Domnio ePersistncia.

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

  • 7/28/2019 JCompany Developer Suite - 01

    16/19

    Introduo ao jCompany Developer Suite

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

    jCompany Configuration Management

    -Gerncia de ConfiguraoDificilmente um profissional iniciante na rea de Desenvolvimento de Aplicaes de Software corporativocompreender porque o mdulojCompanyConfiguration Management tem o mesmo peso em termosde contribuio que o mdulojCompanyIDE, como ilustrado na Figura A1.1.

    O fato que, dentro da disciplina deGerncia de Configurao, to enfatizada em certificaes dematuridade 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 longodo tempo, garantindo:

    o Integrao dos Itens de Configuraoo Controle de Verses (Integridade Continuada)

    Em uma sute altamente integrada, como vemos na Figura A1.10, todos os componentes envolvidos, emtodas 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 deorigem distinta, e mais de uma centena de itens de configurao (projetos, componentes, captulos dedocumentao, roteiro Cheat-Sheet, plug-ins etc.), como o caso dojCompanyDeveloper Suite, uma tarefa herclea. Especialmente quando se passa a contar com uma base instalada que exigemanutenes de linhas de base em paralelo.

    Em grandes organizaes, onde de se esperar o desenvolvimento de dezenas ou centenas de projetossobre uma mesma Arquitetura de Software Corporativa, a simples terceirizao de boa parte destetrabalho de embalagem integrada de software Open Source e do controle de sua Linha de Base, deforma unificada, pode compensar o uso dojCompany e retornar o investimento.

    Open Source Application Lifecycle Management

    Em uma viso mais ampla de um Processo de Desenvolvimento de Sistemas (PDS), ojCompanyDeveloper Suite est inserido na fase de Construo. Esta ser, portanto, a fase do PDS enfatizadaneste livro, muito embora venhamos a analisar elementos da fase de Elaborao para compreender ospadres de especificao que iremos implementar, tais como Modelo de Classes, de Casos de Uso eColaboraes.

  • 7/28/2019 JCompany Developer Suite - 01

    17/19

    Captulo A1

    Mas esta ainda uma cobertura pequena de ferramental para a automao de um PDS completo. Umaviso 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 paraApplication Lifecycle Management (ALM). Com elas, se torna possvel uma gesto integrada viaferramentas 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 cdigofechado e incorrem facilmente em licenciamentos milionrios. Um outro agravante o excesso de pesoque estas sutes tradicionais costumam trazer. Por estes motivos, customizaes refinadas logo semanifestam 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 ojCompany para atendimento a outras fases e disciplinas de um PDS, todas com a mesma filosofia deintegrao e especializao de insumos Open Source, em cdigo aberto.

    No o objetivo deste livro uma discusso com este nvel de abrangncia, mas vale penaapresentarmos este outros produtos:

    -jCompanyQA SuiteIntegra e especializa frameworks e ferramentas lderes do mundo Open Source para a reade Garantia da Qualidade (Quality Assurance QA), oferecendo produtividade diferenciadana automao da averiguao de qualidade, que inclui testes funcionais, de unidade eesttico para averiguao de padres e convenes de cdigo.

    Alm disso, prov um ambiente de integrao contnua e de trabalho em equipe prontopara 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 umambiente suportado e integrado de Gerncia de Configurao e Automao.

    jCompanyProduction Suite

    composto por dois produtos:

    jCompanySecurity: Permite a definio do controle de acesso da aplicao de formatotalmente dinmica, sem que desenvolvedores declarem ou necessitem de programar

    polticas bsicas de acesso. Ex: usurios com papel A no podem acessar a URL /notafiscal, usurioscom papel B no podem ver o campo salario" na URL /funcionario, somente usurios com papelPresidente e certificado digital X podem acessar a URL /demofinanceiro. OjCompanySecurityimporta automaticamente todas as URLs de arquivos executveis (WAR e EAR), permite o cadastrointerativo de regras atravs de uma aplicao e, a partir destas regras, realiza simultaneamente oconforto visual (esconder itens de menu, botes, campos dinamicamente) e a segurana efetiva noservidor (JAAS).

  • 7/28/2019 JCompany Developer Suite - 01

    18/19

    Introduo ao jCompany Developer Suite

    jCompanyMonitor: Permite a coleta de cliques de navegao e transao do usurio (HTTP GETs ePOSTs), contabilizando acessos de forma assncrona, via JMS, o que garante mxima escalabilidade dasoluo, mesmo para grandes clusters de Application Servers, sem impacto na performance edisponibilidade das aplicaes. Alm da auditoria de histria de navegao de todos os usurios, emtodas as diversas sesses de uso, monitora ainda a disponibilidade de servios diversos via agentes demonitoria, tais como disponibilidade do servio do SGBD A, servio de correio B, servio JMS C ouda 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 deGesto de Contedo, Colaborao e Groupware em geral, que agregam informaes detoda a sute de ALM em um nico ponto. Alm disso, inclui Portlets que podem exibirformulrios desenvolvidos comjCompanyDeveloper Suite, integrando segurana epermitindo 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 triagemde incidncias de erros, sugestes e pedido de melhorias por parte de usurios, mantendo estasocorrncias rastreveis at seus requisitos originais, produtos e componentes de produto. Trata-se de umsistema completo para identificao, triagem, atendimento e gerao de base de conhecimentorastrevel, para bugs, melhorias e quaisquer outros feedbacks dos usurios.

    -eCompany Reports uma soluo para construo, escalonamento e disponibilizao de relatrios paraWeb, baseada no Eclipse BIRT e escalonador Quartz, que permite que sejamplanejadas 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 relatrioscustomizados externos aplicao e que ainda assim se integram visualmente aplicao - trazendogrande produtividade para a produo e manuteno destes artefatos.

    O eCompany Reports utiliza o Eclipse BIRT e servio BIRT Viewer como base. Relatrios BIRT podemincluir grficos, quebras e indicadores visuais sofisticados, em formato PDF ou HTML.

  • 7/28/2019 JCompany Developer Suite - 01

    19/19

    Captulo A1

    Sumrio

    Neste captulo, discutimos brevemente os desafios que as organizaes vm enfrentando paraabsorverem inovaes tecnolgicas em um ritmo competitivo. Caracterizamos como tentaremoscontribuir nesta rea e o que queremos dizer por tirar o mximo do Java EE OpenSource.

    Apresentamos ojCompanyDeveloper Suite (assim como o JAGUAR) como uma soluo completapara construo de aplicaes Java EE, com base em arquitetura Open Source customizvel, em suasdiversas dimenses de atuao. Prosseguimos analisando a arquitetura de alto nvel de todos os seusmdulos: jCompany FS Framework, jCompany IDE, jCompany Patterns & Methods, jCompany Test For

    Developer e jCompany Configuration Management.Por fim, vimos como ojCompany se encaixa em uma estratgia mais ampla, de Open SourceApplication Lifecycle Management, contextualizando o produto dentro do espectro maior da soluoPowerlogic jALM.