O Evento OpenTDC foi de fato muito bom, palestras lotadas e super informativas, parabens a equipe organizadora. Na foto Bruno Rossetto Machado(JBoss Consultant), Edgar, David Barzilay(Gerente de Marketing da Red Hat BR)

Archive for June, 2008O Evento OpenTDC foi de fato muito bom, palestras lotadas e super informativas, parabens a equipe organizadora. Na foto Bruno Rossetto Machado(JBoss Consultant), Edgar, David Barzilay(Gerente de Marketing da Red Hat BR)
27
06
2008
OpenTDC : Evento da GlobalCode esse sábado na Anhembi/MorumbiPosted by: Edgar Silva in eventosOlá amigos, este sábado ocorrerá a versão gratuita do TDC(The Developers Conference), que é o OpenTDC, as inscrições são no “vasco”, pela grade, há algumas palestras que vale a pena você estar presente, além é claro de poder conhecer, encontrar pessoas, trocar idéias e tudo mais. O site do evento é: http://www.thedevelopersconference.com.br/opentdc.html O site para inscrições é: http://www.thedevelopersconference.com.br/inscricoes.seam O JBoss Seam está presente em grande estilo, não só em algumas aplicações feitas pelo time da GlobalCode, acredito que será bastante falado no evento, vide a grade. Mas o Seam não será o único representante da família JBoss, meu colega Bruno Machado, estará proferindo uma palestra sobre Administração de JBoss, onde vai mostrar dicas de tunning, load-balance, execução de multiplas-instâncias e etc. Há algumas outras palestras também, que não as quero perder por nada. Grande Abraço Edgar ![]() No meu blog no Java.net, escrevi um pouco sobre algumas visões sobre BPM e algumas notas sobre o nosso jBPM, veja aqui o texto: Business Processing Modeling – BPM, I was starting my career when I heard the word “Workflow” by the first time, of course I had many other things to learn, instead to pay attention on some thing that seems to be too complicated, however in during any computer science or related course we learn some about “State Machines”, well, I wanna tell you a history that I heard when I worked for one of the biggest federal bank in Brazil: Workflow products had arrived down here in end of 90’s, this bank tried implement a Workflow, although instead to map the the activities into a “State Machine Diagram” where would be possible figure out where the process’s drawbacks or too long waits came from, they mixed business logic to process logic, obtaining serious performance problems and not too accurate information, the word “workflow” was abolished for a long time on this bank after this first frustrated try. Maybe, such things like that happened in all over the world, that’s why during too much time, the concept to try get the company’s process and map all of them represented using cool colored diagrams, which internally are not much more than a “State Machine”. The workflow products getting started so to hibernate, and then as a “pheonix” are relaunched but now with a new name: BPM (Business Process Modeling)! Maybe now, many people will stop to read this entry, but sorry, I can’t figure out BPM in any other way, but now it is dressed much better, with new terminologies and concepts that make it “hot” or “fashion”. All the text above is just to call your attention for BPM Opensource implementations as an alternative for commercial licensing vendors,as such alternatives I can recommend you the following: OSWorkflow, IntalioBPM and jBPM, actually I respect all of them, but I’ve been using jBPM most frequently, that’s why I will point some about it here. But, I recommend you take a look about the other ones. From this point of this entry, I don’t wanna promote any project marketing, in despite of the fact I wanna tell you my particular vision about jBPM as a solution, and based on my professional experience show you where and how you may apply it into your projects. The best way I found to look at jBPM, is that it is a great BPM Engine, and it is not a weakness, I mean: When you think about BPM you can take many scenarios, since from modeling, management, governance and so on. JBPM is a really cool BPM framework and Engine. When you have an Application that has an internal workflow with a complete User Interface or a set of Services to do everything you want without. In other words, imagine you have a HelpDesk System built 10 years ago with OracleForms , and you have mapped a kind of workflow on that, however you never figured out how measure your business activity monitoring(BAM). Now, keep in mind that you can during your regular activities in your system call a procedure to generate a simples text file with some information, which can be used to fill information into a process execution of a jBPM process instance, and from another system you can handle such information to get some report or any other issue. If we are speaking about text file generating, it could be a serious candidate for an ESB listener to process it, well but ESB is out of this scope, but keep ESBs usage in mind. In general, jBPM can be your best option when you want embed a BPM engine into your application, good scenarios contributes for that, such as: JBPM has a native extensible and open language called jPDL, that can process both HumanTasks in addition to invoke WebServices via Java components, it counts with BPEL support as well. In a near future, jBPM will have a PVM(Process Virtual Machine), which basically is “State Machine Framework”, which will render a process independent from the language source, support for BPEL, XPDL using PVM are in the plans of jBPM new versions. A really nice Eclipe plugin where is possible design all process visually, in addition to this, you can use Java components to interact with Node events(node-enter, node-leave for example) or during a transition from a node to another, and everything associating Java objetcs to some specific event during the process execution. The last good reason to use jBPM is the Seam intergration, which make the process management really easy for any developer. For sure, that you may use jBPM as a “BPM Suite” as well, but keep in mind that you will keep Business Analyst designing the process in UML or in some BPMN tool, and you will need a tech-guy to transform this design in to a jpdl diagram, where a Eclipse plugin is available. By the way, when you made an option by use an Opensource engine such as jBPM, you can do that because your plan can be get culture about BPM first, and it is really important for a SOA strategy. No matter if you have many boxes with SOA solutions with you have no idea how use them, and even worst when you already paid for them. Well, if you need more information, you can go to jBPM web site, and download the lastest jbpm-jpdl-suite, which contains the framework and the eclipse plugin all together. Watch the demos, and take a look into documentation. Se você utiliza o drools e seu plugin para Eclipse, pode ter visto que na mais nova versão, para que você consiga usar DSLs, é preciso renomear o arquivo de regras para .dslr, desta forma você consegue atribuir um “expander” e trabalhar com sua linguagem natural. Como no exemplo:
O código acima processa um exemplo de um objeto que seria uma “Chamada Telefonica”, você pode estar se perguntando onde estão os comandos reais, a resposta é que está no pt_BR.dsl, veja o exemplo abaixo:
Por último, ao carregar meu arquivo de regras, eu também associo meu arquivos de DSL ao de regras:
Pronto, agora podemos ter a liberdade de lidar com as regras da forma que bem entendermos. Maiores informações sobre o projeto Drools: http://www.jboss.org/drools. Claro, que deixo aqui o agradecimento ao meu amigo Tirelli (core-developer do drools), que sempre me tirar as dúvidas necessárias para montar nossos projetos. E No jBPM, uma das features mais interessantes é a capacidade de processamento de Tarefas Humanas(HumanTasks), que por sua vez podem guardar várias sub-tarefas de cada usuário em cada fase(node) do workflow. Quando você cria uma tarefa dentro de um task-node, como por exemplo: [Veja Link] Para controlar todo a associação de usuário, estabelecemos uma classe para tratar o "assign" da tarefa. Esta classe é UserTaskAssignment, que implementa a interface AssignmentHandler. Nesta classe, como as TaskNodes serão disparadas após o início do processo, no nó de Início(start), logo que o processo passar por ele, armazenaremos uma variável de contexto, no caso um id de usuário. E para cada task, capturamos este id e associamos a(s) tarefa(s), veja o handler:
JAVA:
Agora, fiz uma adaptação em um dos métodos do meu serviço para mostrar para o usuário X, quantas tarefas e em quais instâncias de processos eles tem tarefas pendentes: JAVA:
O resultado final de retorno para testes de Dubug seria, para o comando REST: http://localhost:8080/licenciamento/realize/pagementosefa/55/1111 User 1111, the Task:: entregar recibo is waiting for your start. This is a task from the Process Id: 55 User 1111, the Task:: pagar is waiting for your start. This is a task from the Process Id: 55 Payment Id: 1213310025945 Este post pode estar demorado, mas nunca é tarde demais para se falar, o JBoss Operations Network, ou o JON, é a ferramenta em browser web que permite controle, administração, monitoração do ambiente e geração de alertas sobre eventos que podem ocorrer no seu parque de máquinas, onde hajam um ou vários servidores com JBoss Application Server instalados. O JON, é acessível somente para clientes que possuem suporte oficial da Red Hat, em outras palavras, só as versões Enterprise de JBoss AS são homologadas para o JON, bem como só estes clientes podem adquirir a subscrição(licença de suporte) para este produto. Num passado, esta ferramenta utilizava em sua estrutura do kernel da Hyperic, por este motivo não era "Opensource"! Como assim não era? Agora é? A resposta é: Sim, agora o código base para o JON é opensource, resultado da união de esforços entre Red Hat e Hyperic, criando assim o projeto RHQ-Project. Com o projeto RHQ, lançamos recentemente o Jon 2.0 GA, que é a mais nova versão do JON, entre as inúmeras melhorias e novidades, destaco a capacidade de cricação de extensões(plugins), que permitem os clientes criarem suas próprias formas de monitoração, desde algum requisito de hardware, infra ou até mesmo de aplicações, por exemplo: "Quantas vendas foram realizadas no último dia?", podendo gerar um alerta, caso o número tenha sido menor que 20% ao baseline estabelecido. Claro, o foco do JON é monitorar as questões de sistemas operacionais(solaris, win e linux a exemplo), JBoss AS e seus recursos (filas JMS, EJBs, DataSources/Pools de Conexão,Sessões Hibernate), além de Tomcat, Apache e até o MS IIS. De fato, o JON torna a plataforma JBoss AS, mais que uma plataforma estável e performática, mas também agora, como uma cara corporativa. Sites
E claro, parabens Sport do Recife, pela Copa do Brasil!!!!! Em um dos clientes que eu estamos atendendo na empresa, um dos requisitos é autenticar no RACF, uma espécie de LDAP para o Mainframe. Nosso cliente, disponibilizou um WS que faz este trabalho "sujo". Nos resta então criar um LoginModule que suporte esta nova funcionalidade. Quando você proteger Aplicações em Java é importante saber onde você pode se conectar, o JBoss oferece por padrão alguns LoginModules, entre eles: -LoginModule baseado em arquivos properties Em nossa solução, estaremos promovendo mais um LoginModule. O primeiro passo é alterar o login-config.xml dentro de /default/conf, no caso adicionamos mais um LoginModule, como a seguir: Adicionamos até uma propriedade, que é o WSDL do Serviço, que pode variar dependendo do caso, e ai a configuração poderá ser feita no LoginModule, sem a necessidade de recompilação. Estamos dizendo acima que a classe org.jboss.security.auth.api.JBossLoginModuleWS é a implementação deste mecanismo de Login. Veja o código-fonte de exemplo: JAVA:
Agora, a qualquer momento que você proteger uma Aplicação Web, ou quiser utilizar o Servidor de Aplicações para fazer isto, você deverá configurar o jboss-web.xml para apontar para o LoginModule que voce configurou no login-config.xml, veja o exemplo a seguir: Além desta configuração, você deverá proteger as páginas de uma Aplicação Web, por exemplo, sendo assim, você irá configurar o web.xml da sua aplicações para pedir o "Realm"(LoginModule) que vc configurou com o nome WSLoginModule, em nosso caso vamos liberar apenas o acesso as páginas .jsp caso o Login seja efetivado no WebServices de autenticação. Veja o web.xml: Esta é mais uma dica, que sei que posso precisar um dia novamente! |