Todo departamento de TI se esforça para manter um ambiente de produção funcional para seus sistemas. Estabilidade e desempenho comprovados são medidas fundamentais para um ambiente de produção bem-operado. O WebSphere Process Server (daqui em diante chamado de Process Server) e seu sucessor, o IBM Business Process Manager (BPM), fornecem uma plataforma para criar e implementar soluções de BPM.
Uma parte fundamental da criação de uma solução de BPM é atender seus requisitos funcionais. Outra parte importante de um projeto de BPM é garantir que o desempenho do sistema, uma vez que a solução de BPM é implementada para produção, atenda seus respectivos acordos de nível de serviço.
Na realidade, a engenharia de desempenho frequentemente apresenta falhas nos planos de projetos de desenvolvimento. Isto resulta em falha nos sistemas em atender as expectativas dos usuários em relação ao desempenho. Richard Metzger descreve em seu artigo BPM and SOA performance vários estudos sobre este tópico. "Factors inhibiting performance and scalability", por exemplo, identifica várias áreas que impossibilitam as metas de desempenho. Em 16 casos analisados, somente cerca de 35% eram produtos de fornecedores e ambientes relacionados, e 65% eram relacionados a aplicativos. Desses 65%, 45% eram relacionados a recursos de backend, 18% a configurações de aplicativo de cliente e 36% a código de cliente. Esses números destacam a importância da inclusão de contraprestação de desempenho durante todo o ciclo de vida de um projeto de BPM.
Este artigo contém links para documentos sobre como ajustar um Process Server ou uma solução de BPM e também faz referência a recursos de informações que discutem etapas de ajuste de desempenho.
O ajuste de desempenho é geralmente um processo interativo que inicia com os requisitos de tempo de resposta ou rendimento para uma solução de BPM. Esses requisitos são normalmente recuperados a partir dos acordos de nível de serviço. O objetivo da engenharia de desempenho é atender esses acordos de nível de serviço definidos.
O processo para essa obtenção é interativo, o que inclui repetição de teste de desempenho, identificação de gargalos no sistema e aplicação de alterações para remover os gargalos. Isto pode ser design do aplicativo ou alterações de configuração, como na infraestrutura, banco de dados ou ambiente. O teste, a identificação de gargalos e a aplicação de alterações são repetidos até que os requisitos de desempenho sejam atendidos.
O programa Performance Tuning Worksheet fornece orientação prática sobre o ajuste de desempenho em um Process Server ou sistema BPM. Ele possui uma planilha de amostra que mostra como aplicar os princípios de ajuste de desempenho.
Otimizando o design do aplicativo para desempenho
A engenharia contínua nesse contexto de desempenho já deveria ter sido realizada durante o design do aplicativo e a fase de desenvolvimento no projeto. A IBM fornece informações sobre as melhores práticas de design do aplicativo para desempenho otimizado através de uma série de IBM Redpapers sobre ajustes de desempenho para várias liberações de produtos:
- [Process Server V7] WebSphere Business Process Management e WebSphere Enterprise Service Bus V7 Performance Tuning
- [Process Server V6.2] WebSphere Business Process Management 6.2.0 Performance Tuning
- [Process Server V6.1] IBM WebSphere Business Process Management V6.1 Performance Tuning
É possível consultar as melhores práticas de arquitetura e desenvolvimento descritas nos capítulos 1 e 2 desses Redpapers como a primeira etapa para a obtenção de um sistema otimizado de desempenho.
Ajustando os sistemas de banco de dados e operação
A próxima etapa é otimizar a infraestrutura, banco de dados backend e ambiente a fim de atender os objetivos de desempenho. Primeiramente, o sistema operacional e o desempenho de banco de dados backend devem ser ajustados. Excelentes informações sobre esta etapa são encontradas, sem limitação, nos seguintes recursos:
- Tuning operating systems to optimize WebSphere performance
- Case study: Tuning WebSphere Application Server V7 and V8 for performance
- Best Practices: Tuning and Monitoring Database System Performance (DB2®)
Uma vez que o design do aplicativo e a infraestrutura estão otimizados, o ambiente de BPM, como o Process Server ou BPM, necessitam ser sintonizados. O que e como sintonizar normalmente depende da solução que está sendo executada no ambiente de BPM. Parâmetros importantes do sistema para impor medidas e aplicar alterações usualmente estão em:
- Política de coleta de lixos e uso de heap JVM
- Conjuntos de encadeamento
- Conjunto de conexões
- Componentes de mensagens como conexão fábrica e ativação de especificações
Geralmente, há dois importantes tipos de solução de BPM: soluções com foco em rendimento e tempo de resposta.
Informações gerais sobre ajuste de ambiente de BPM são fornecidas em Otimizando o design do aplicativo para desempenho, Capítulo 3: Configurações e ajuste de desempenho.
Além disso, o Centro de Informações fornece excelentes informações nesse tópico, IBM Business Process Manager V7.5: Tuning.
Soluções de BPM com foco em tempo de resposta
Interações com o usuário com um sistema de BPM são normalmente cenários com foco em tempo de resposta. Um usuário está, por exemplo, trabalhando em uma tarefa ou lista de tarefas no sistema de BPM e usando uma interface com o usuário customizada ou integrada. Ele, normalmente, espera por uma resposta durante sua interação com o sistema de BPM através de sua interface com o usuário. O tempo necessário para fornecer essa resposta é fundamental para um cenário com base em tempo de resposta.
O Process Server e o BPM fornecem interfaces com o usuário integradas como o Business Space ou o Business Process Choreographer Explorer. Também há várias APIs disponíveis para a criação de clientes customizados. Esses clientes são componentes importantes que normalmente precisam ser incluídos nas atividades de ajuste de desempenho. A engenharia de desempenho para cenários com foco em tempo de resposta dedica-se a ajustar a solução para fornecer tempos de resposta mais rápidos para todas as interações com o usuário.
Mais informações sobre cenários com foco em tempo de resposta de ajuste podem ser encontradas nos seguintes recursos:
Clientes integrados de ajuste:
- [Process Server V7] Scalability and Performance of Business Space and Human Task Management Widgets in WebSphere Process Server V7
- [Process Server V6.0.2 – V6.1.2] Business Process Choreographer Explorer - Customization and Tuning Options
- [Process Server V6.2.0.2 – V7] Using Query Tables in Business Process Choreographer Explorer
Otimizando aplicativos cliente customizados:
- [Process Server V6.1 – V7] Business Process Choreographer query() and queryAll() - How to access processes, tasks and work items through the API and JDBC
- [Process Server V6.0.2 – V6.2] Improving the performance of complex BPC API queries on DB2
- [Process Server V6.0.2 – V6.1] WebSphere Process Server 6: Business Process Choreographer - BPC Queries - Performance Tuning Methodology For DB2
- [Process Server V6.0.2.3 – V6.1] WebSphere Process Server V6 – Business Process Choreographer: Performance Tuning of Human Workflows Using Materialized Views
Soluções de BPM com foco em rendimento
Alinhamento através de processamento de transação de negócios sem interação humana é um típico exemplo para uma solução de BPM com foco em rendimento. Isto é importante para o processamento de uma quantidade definida de transações de negócios por período de tempo definido. A engenharia de desempenho para tais cenários precisaria focar no ajuste de soluções para processar tantas transações de negócios quanto possíveis em um período de tempo definido.
Mais informações sobre cenários com foco em rendimento de ajuste podem ser encontradas nos seguintes recursos:
- Performance tuning of throughput-based SOA solutions for WebSphere Process Server - Practical introduction to performance tuning that will help you master your next BPM project
- [Process Server V6.1] WebSphere Process Server V6.1 – Business Process Choreographer: Performance Tuning Automatic Business Processes for Production Scenarios with DB2
O ajuste de desempenho é um processo iterativo que normalmente envolve:
- Alteração no design do aplicativo
- Ajuste de banco de dados backend e infraestrutura
- Ajuste do ambiente de BPM
Este artigo forneceu recursos de informação sobre o ajuste de desempenho que pode servir como referência para seu WebSphere Process Server ou solução de BPM.
O autor gostaria de agradecer Andrew Tharp, Dominik Meyer , Karri Carlson-Neumann , Ryan Claussen , Wendy Butt , Gary Hunt e Richard Metzger por terem revisado este artigo e fornecido excelentes comentários.
-
Séries de artigos sobre a operação de um ambiente WebSphere Process Server
-
IBM Business Process Manager 7.5 and WebSphere Process Server 6.X and 7.0 Public Knowledge Compendium (Esse documento fornece uma lista de documentos abrangente, incluindo comentários relacionados ao desempenho.)
-
IBM Redpaper: Performance and Capacity Implications for a Smarter Planet
-
Website do IBM
Software Services for WebSphere
-
IBM
Business Process Management zone on developerWorks
-
Página de recursos do developerWorks do WebSphere Process Server e WebSphere Integration
Developer

Susan Herrmann é uma Software Engineer no IBM Research and Development Lab em Boblingen, Alemanha. Ela tem dez anos de experiência nas áreas de Business Integration e Business Process Management. Ela passou a fazer parte da equipe de WebSphere Business Process Management Development em 2004. Desde 2006, é membro da equipe Business Process Management SWAT, aconselhando clientes sobre as melhores práticas e fornecendo suporte fundamental em várias situações importantes de cliente em todo o mundo. Ela é formada como engenheira em tecnologia da Informação e passou a fazer parte da IBM em 2001