macsim - simulaÇÃo discreta utlizando o modelo de ... · 2 simulação discreta com javabeans um...

13
A pesquisa Operacional e os Recursos Renováveis 4 a 7 de novembro de 2003, Natal-RN MACSIM - SIMULAÇÃO DISCRETA UTLIZANDO O MODELO DE COMPONENTES JAVABEANS Leonardo Souza dos Santos & Vakulathil Abdurahiman Divisão de Ciência da Computação Instituto Tecnológico da Aeronáutica – ITA Praça Marechal Eduardo Gomes, 50 Vila das Acácias - CEP 12228-900 São José dos Campos – SP, Brazil e-mails: : [email protected] ; [email protected] Resumo A modelagem e análise de experimentos de simulação vêm ganhando maior reconhecimento dentro da área industrial e acadêmica. Os recentes desenvolvimentos tais como a simulação baseada na linguagem Java tem proporcionado uma oportunidade única para aperfeiçoamentos na área de modelagem e construção de frameworks para ambiente de simulação. Este artigo descreve um protótipo de uma arquitetura baseada em componentes para a construção de experimentos de simulação discreta baseado na metodologia das três fases. Palavras chaves Simulação discreta de eventos, componentes de simulação, JavaBeans. Abstract The modeling and analysis of simulation experiments is gaining recognition in the industry and in academic research. Recent developments such as Java-based simulation are giving a unique opportunity for improvements in the modeling and construction of frameworks for simulation environment. This paper describes a prototype of a component-based architecture using JavaBeans for construction of a discrete event simulation experiments using Three Phase approach Keywords: Discrete Event Simulation, Simulation Components, JavaBeans. 1 Introdução Neste trabalho foi desenvolvido um conjunto de componentes JavaBeans para a criação de simulação discreta com o objetivo de disponibilizar uma biblioteca para alunos e profissionais da área que necessitam dominar os conceitos básicos da área de simulação discreta. A idéia foi criar um conjunto de componentes básicos para simulação que possam ser arranjados e conectados em uma folha de trabalho. Utilizando-se das folhas de propriedades existentes dentro de ambientes gráficos de programação, o usuário poderá configurar com facilidade as propriedades dos componentes visando à construção do experimento.

Upload: others

Post on 07-Aug-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: MACSIM - SIMULAÇÃO DISCRETA UTLIZANDO O MODELO DE ... · 2 Simulação Discreta com JavaBeans Um framework de programação e modelagem baseado em componentes para aplicações

A pesquisa Operacional e os Recursos Renováveis4 a 7 de novembro de 2003, Natal-RN

MACSIM - SIMULAÇÃO DISCRETA UTLIZANDO O MODELO DE COMPONENTES JAVABEANS

Leonardo Souza dos Santos & Vakulathil Abdurahiman Divisão de Ciência da Computação

Instituto Tecnológico da Aeronáutica – ITA Praça Marechal Eduardo Gomes, 50 Vila das Acácias - CEP 12228-900 São José dos Campos – SP, Brazil

e-mails: : [email protected] ; [email protected]

Resumo A modelagem e análise de experimentos de simulação vêm ganhando maior reconhecimento dentro da área industrial e acadêmica. Os recentes desenvolvimentos tais como a simulação baseada na linguagem Java tem proporcionado uma oportunidade única para aperfeiçoamentos na área de modelagem e construção de frameworks para ambiente de simulação. Este artigo descreve um protótipo de uma arquitetura baseada em componentes para a construção de experimentos de simulação discreta baseado na metodologia das três fases.

Palavras chaves

Simulação discreta de eventos, componentes de simulação, JavaBeans.

Abstract The modeling and analysis of simulation experiments is gaining recognition in the industry and in academic research. Recent developments such as Java-based simulation are giving a unique opportunity for improvements in the modeling and construction of frameworks for simulation environment. This paper describes a prototype of a component-based architecture using JavaBeans for construction of a discrete event simulation experiments using Three Phase approach

Keywords:

Discrete Event Simulation, Simulation Components, JavaBeans.

1 Introdução Neste trabalho foi desenvolvido um conjunto de componentes JavaBeans para a criação de simulação discreta com o objetivo de disponibilizar uma biblioteca para alunos e profissionais da área que necessitam dominar os conceitos básicos da área de simulação discreta. A idéia foi criar um conjunto de componentes básicos para simulação que possam ser arranjados e conectados em uma folha de trabalho. Utilizando-se das folhas de propriedades existentes dentro de ambientes gráficos de programação, o usuário poderá configurar com facilidade as propriedades dos componentes visando à construção do experimento.

Page 2: MACSIM - SIMULAÇÃO DISCRETA UTLIZANDO O MODELO DE ... · 2 Simulação Discreta com JavaBeans Um framework de programação e modelagem baseado em componentes para aplicações

2409

Dentro do espírito da tecnologia de componentes de software, os componentes de simulação devem ser projetados para serem usados em diferentes contextos, configuráveis para uma larga variedade de aplicações diferentes e extensíveis para requisitos não previstos. Visando atingir estes objetivos, foram adotadas as seguintes diretrizes no desenvolvimento dos componentes:

• Utilização de interfaces modulares para os componentes visando torná-los independente do ambiente no qual eles operam.

• Adotando uma forte separação entre componentes e acoplamento entre componentes.

2 Simulação Discreta com JavaBeans Um framework de programação e modelagem baseado em componentes para aplicações na área de simulação deve permitir aos desenvolvedores selecionar interativamente componentes da biblioteca e colocá-los sobre uma folha de trabalho para posterior configuração. Tais componentes abrangem um conjunto de componentes gráficos visando à construção de experimentos de simulação discreta envolvendo um ou mais servidores junto com os elementos de entrada e saída de entidades do sistema. Os parâmetros dos componentes podem ser configurados no framework através da edição da folhas de propriedades de cada componente ou por edição direta da linha de código de programação. Uma vez configurado os componentes, o usuário poderá executar os experimentos e analisar os resultados obtidos. É possível a construção de bibliotecas de componentes para diferentes propósitos, diferente usuários e diferentes aplicações. Entretanto, o objetivo principal é a reusabilidade, seja através da extensão, configuração e acoplamento entre componentes das bibliotecas. Portanto, é possível encontrar diferentes usuários usando diferentes bibliotecas de formas diferentes. O objetivo deste trabalho visa a atender as necessidades do desenvolvedor de aplicação, disponibilizando um conjunto pré-definido de componentes, prontos para serem usados em suas aplicações. Através da simples configuração das propriedades alterando os valores dos parâmetros em convenientes interfaces e interativamente conectando os componentes para rodar os experimentos com os mesmos. Esta concepção pressupõe que o usuário não deseja ou não possui grande domínio de programação, portanto o usuário necessita de suporte para tal funcionalidade. Este tipo de usuário necessita de um conjunto pré-definido para modelagem de suas entidades específicas à sua aplicação, facilidade de acoplamento e mecanismo de controle, cuja funcionalidade está embutida dentro dos componentes e do Executivo, que gerencia o processo de simulação baseado no algoritmo adequado para simulação discreta. Além dos componentes, este usuário necessita de uma ferramenta fácil de usar para configurar sua aplicação e fazer os seus experimentos, tal como o ambiente de desenvolvimento JBuilder 8 oferecido pela Borland.

3 Modelo de Componentes JavaBeans Javabeans é um modelo de componente de software independente de plataforma e portátil escrito em Linguagem Java que foi introduzido em 1997 pela Sun. Um JavaBean é um componente de software reutilizável que pode ser modificado interativamente e ser composto de outros componentes, utilizando ferramentas que suportam montagem de componentes variando desde simples ferramentas de leiaute até complexos ambientes de programação visual baseada em componentes. Componentes JavaBeans suportam os seguintes conceitos:

• Propriedades

Page 3: MACSIM - SIMULAÇÃO DISCRETA UTLIZANDO O MODELO DE ... · 2 Simulação Discreta com JavaBeans Um framework de programação e modelagem baseado em componentes para aplicações

2410

Propriedades são atributos que podem ser lidos e escritos pela chamada de métodos apropriados, A definição dos métodos de acesso e modificadores deve seguir a uma convenção de nomes que estabelece que:

a) Métodos de Acesso devem ter o nome formado pela palavra get + nome da propriedade

b) Métodos modificadores devem ter o nome do método formado pela palavra set + nome da propriedade

• Eventos Eventos são usados para comunicação entre componentes. Através de um evento, um bean pode notificar outros beans que alguma alteração em uma propriedade ocorreu. Para atender a estes objetivos ouvintes de eventos são registrados às fontes de eventos. Para proporcionar esta funcionalidade, a fonte de evento tem que propiciar dois métodos que permitem o registro de ouvintes, um método denominado add+ <Nome do Evento>+ Listener e um método denominado remove + <Nome do Evento> + Listener para registrar componentes que estão interessados em receber o evento.

• Introspecção As informações sobre as propriedades, eventos e operações dos componentes JavaBeans podem ser propiciadas através das convenções de nomes. Ferramentas para componentes JavaBeans tem acesso às variáveis e métodos das classes Java e, assim reconhecem tais convenções. Quando conveniente, o programador pode optar pelo desenvolvimento de uma classe BeanInfo, onde as informações sobre as propriedades, eventos etc são fornecidas explicitamente.

• Persistência De forma a manter suas propriedades modificadas, um componente tem que ser capaz de serializar seu estado em um meio de armazenamento externo. Um mecanismo de serialização embutido simplifica o suporte à persistência.

• Configuração Modificar simples propriedades nem sempre é o suficiente para configuração conveniente de componentes complexos. Suporte adicional pode ser necessário para permitir a modificação de propriedades complexas. Editores de propriedades e configuradores podem ser disponibilizados para facilitar a configuração. Componentes JavaBeans podem ser classes Java arbritárias que estão em conformidade com alguns poucos requisitos. A interface do componente será definida pelo eventos, propriedade e métodos. A interface pode ser definida pela aderência à convenção de nomes ou pela definição de uma classe BeanInfo a qual fornece toda informação sobre o componente, Um JavaBean pode ser uma simples classe, mas também pode consistir de muitas classes e objetos persistentes, que são tipicamente armazenados em um arquivo do tipo JAR - Java Archive File (um tipo de arquivo de compactação com extensão jar).

4 MACSIM - Conceitos e Arquitetura da Biblioteca

a. Idéias principais No framework de simulação Macsim, a realização de simulação é baseada nas seguintes idéias e conceitos:

Page 4: MACSIM - SIMULAÇÃO DISCRETA UTLIZANDO O MODELO DE ... · 2 Simulação Discreta com JavaBeans Um framework de programação e modelagem baseado em componentes para aplicações

2411

• Um conjunto de blocos elementares é disponibilizado para modelagem do experimento de simulação.

• Um conjunto de classes voltado para implementar a folha de trabalho, local onde serão colocados os componentes para construção do experimento de simulação.

• Um algoritmo implementado dentro da classe Executive gerencia a construção, configuração e execução da simulação.

A Figura 1 ilustra como sistemas de simulação são colocados juntos para construir um experimento de simulação. Dentro desta visão, a implementação do experimento de simulação do sistema pode ser feita sob as seguintes formas:

a. Seleção Seleção do componente da paleta de componentes de acordo com a necessidade do experimento de simulação a ser construído.

b. Configuração Componentes de simulação podem ser configurados para atender diferentes requisitos pela utilização de diferentes funções de distribuições ou para indicar qual o próximo servidor será requisitado para a utilização de um determinado serviço.

c. Acoplamento Para cada componente colocado na folha de trabalho o Executivo recebe um referência. Esta referência é utilizada pelo Executivo durante o gerenciamento do experimento de simulação para a implementação do algoritmo de simulação discreta de eventos.

Figura 1 – Programação de JavaBeans pela Folha de Propriedades

Page 5: MACSIM - SIMULAÇÃO DISCRETA UTLIZANDO O MODELO DE ... · 2 Simulação Discreta com JavaBeans Um framework de programação e modelagem baseado em componentes para aplicações

2412

b. Arquitetura Macsim é um conjunto de componentes que pode ser utilizado para construir sistemas de simulação discreta. Todos os componentes empregados são componentes JavaBeans, onde se pode distinguir as seguintes camadas:

Extensões Javabeans para Simulação A camada mais baixa é linguagem de programação Java e o modelo de componentes JavaBeans, que são responsáveis pela estrutura básica sobre a qual será implantado as classes necessárias para a atuação do executivo.

O kernel da Simulação A camada kernel da simulação propicia a infra-estrutura de simulação e implementa conceitos para os componentes de simulação. Esta camada é específica para criar a infra-estrutura para simulação discreta e inclui suporte para:

• Gerenciamento de componentes que compõem o experimento • Gerenciamento das atividades na simulação:

a. Chegada de entidades b. Início de Atendimento de entidades c. Fim de Atendimento de Entidades d. Retirada de Entidades do sistema

• Gerenciamento do relógio da simulação • Atividades de Inicialização do Experimento da Simulação • Atividades de Finalização do Experimento da Simulação

Componentes Elementares de Simulação Esta é camada principal contendo os componentes elementares de simulação a partir do qual os sistemas de simulação são construídos. Estes componentes são específicos para o domínio de aplicação, no caso voltados para atender às necessidades da simulação discreta. Esta camada pode conter os seguintes componentes:

1. Arrive Componente responsável por gerar as chegadas das entidades no sistema, cujo intervalo entre chegadas depende de uma amostragem selecionada pelo usuário. Para cada tipo diferente de entidade que utiliza um ou mais serviços disponibilizados por um dos servidores é necessário um componente deste para simular esta funcionalidade.

2. Server Este componente representa a estação servidora e simula o recurso que esta sendo disputado pelas entidades. De forma que o Server é tem como responsabilidade simular o atendimento às entidades feito pelas estações servidoras, cujo tempo de atendimento obedece a uma distribuição escolhida pelo usuário. Cada experimento de simulação pode conter um ou mais estações servidoras, mas cada estação servidora só pode realizar um único tipo de serviço.

3. Depart Componente responsável por realizar a retirada da entidade do sistema, após a entidade usufruir todos os serviços necessários as entidades.

4. Simulate Este componente tem por função coletar dados sobre a duração do experimento, nome do desenvolvedor e data de execução. Estas informações são usadas pelo Executivo para controlar

Page 6: MACSIM - SIMULAÇÃO DISCRETA UTLIZANDO O MODELO DE ... · 2 Simulação Discreta com JavaBeans Um framework de programação e modelagem baseado em componentes para aplicações

2413

o tempo de execução da simulação e para gerar os dados de cabeçalho do relatório de resultados gerados após o término do experimento.

5. Entity Este componente simula as entidades que fluem através do sistema utilizando os serviços disponibilizados pelas estações servidoras.

6. Acoplamento São as conexões entre as várias estações servidoras Servers, onde cada componente deve saber qual a próxima estação servidora após receber determinado serviço. Um sistema de simulação, portanto é visto como consistindo de diversas estações servidoras, onde as entidades se utilizam os serviços disponibilizados pelas mesmas. O executivo, no papel de controle, decide para onde a entidade pode fluir de uma estação servidora para a outra baseada nos requisitos da entidade e na disponibilidade de servidores. Esta é uma visão geral e abstrata a qual encaixa para todos os tipos de simulação discreta. As diferenças residem em qual tipo de estação servidora é utilizado, os tipos de entidades e as estruturas de acoplamentos.

5 O algoritmo das três fases

Antes de analisar o algoritmo das três fases é interessante identificar as atividades que ocorrem em um sistema típico constituído por uma estação servidora que disponibiliza um único tipo de serviço com um ou mais servidores para as entidades. A Figura 2 ilustra essa situação para facilitar a análise:

Figura 2 – Estação Servidora com três caixas eletrônicos E para cada estação servidora podemos identificar a entidade que necessita do serviço, o extrato bancário ou empréstimo bancário, e o servidor, que pode ser um caixa eletrônico ou gerente de empréstimos do banco. A entidade dentro dos exemplos mostrados refere-se ao cliente do banco, entretanto na modelagem de outros sistemas poderá ser totalmente diferente, como no caso de sistemas de manufatura, onde a entidade representa a peça mecânica a ser usinada e a estação servidora refere-se a uma estação de usinagem que utiliza máquinas operatrizes como torno, fresa, furadeira etc.

Page 7: MACSIM - SIMULAÇÃO DISCRETA UTLIZANDO O MODELO DE ... · 2 Simulação Discreta com JavaBeans Um framework de programação e modelagem baseado em componentes para aplicações

2414

Figura 3 – Estação Servidora de empréstimo Bancário

Figura 4 – Estação Servidora para caixa eletrônico

Em ambas situações mostradas, observamos que três momentos distintos: 1. Arrive - Chegada da Entidade:

o A entidade entra no fim da fila para aguardar pelo atendimento de algum serviço.

2. BeginService -Inicio de Atendimento: o Se houver:

algum servidor disponível na estação servidora e alguma entidade na início fila aguardando pelo serviço

o servidor disponível inicia o atendimento da entidade que está no inicio da fila.

3. EndService - Fim de atendimento: o Após um tempo de serviço, determinado a partir de uma amostragem

(Normal, Exponencial, Uniforme ou outra), o servidor da estação servidora fica disponível para um novo atendimento e a entidade se retira do sistema ou entra na fila para aguardar por outro serviço em outra estação servidora.

As atividades de chegada de entidade – Arrive e fim de atendimento - EndService são Atividades do tipo B, pois embora o instante de chegada da entidade e o tempo de serviço por parte do servidor sejam aleatórios eles não necessitam de condição alguma para que ocorram.

SERVIÇO

ENTIDADE

ENTIDADESERVIÇO

Page 8: MACSIM - SIMULAÇÃO DISCRETA UTLIZANDO O MODELO DE ... · 2 Simulação Discreta com JavaBeans Um framework de programação e modelagem baseado em componentes para aplicações

2415

Por outro lado, a atividade de início de atendimento – BeginService é considerada atividade do tipo C, pois esta atividade só pode ocorrer se houver pelo menos um servidor livre na estação servidora e pelo menos uma entidade na fila aguardando pelo serviço.

Estas considerações expostas baseiam-se na proposta feita por Tocher (1963) e discutida posteriormente por Pidd (1995, 1998 e 2000), e são utilizadas na implementação do algoritmo executado pelo Executivo. Neste algoritmo, o executivo após a inicialização do sistema realiza a repetição do ciclo de três fases. Este processo se repete, enquanto o relógio da simulação não atinge o fim da simulação, conforme ilustrado na Figura 5. Após o término do ciclo de repetição, é realizada a etapa de Finalização para geração de relatórios para análise dos resultados obtidos durante o experimento.

Figura 5: Metodologia das Três Fases

Cada fase tem uma ou mais tarefas associadas conforme a descrição a seguir: Fase A Nesta fase o executivo tem por responsabilidade localizar as próximas atividades do tipo B que deverão ocorrer com o menor tempo e avançar o relógio do tempo de simulação para a posição onde os eventos estão por ocorrer.

Inicialização

clock< duration

Fim

Diagrama dasTrês fases

Fase A

Fase B

Fase C

INÍCIO

Finalização

SIM

NÃO

Page 9: MACSIM - SIMULAÇÃO DISCRETA UTLIZANDO O MODELO DE ... · 2 Simulação Discreta com JavaBeans Um framework de programação e modelagem baseado em componentes para aplicações

2416

Fase B Na fase B são executadas todas as atividades Bs, identificadas na fase A, que estão por ocorrer no tempo indicado pelo relógio da simulação. Fase C Nesta Fase são executadas as atividades Cs que satisfazem às duas condições:

Existe um servidor na estação servidora disponibilizando um serviço. Existe uma entidade na fila aguardando pelo serviço disponibilizado.

6 Detalhamento do algoritmo das Três Fases na Macsim Para implementação do algoritmo são necessários vários objetos:

1. Entity – uma classe que mantém informações sobre a entidade: o TimeCell – o tempo da célula o Avail – que informa se a entidade não está programada para uma atividade

B. o Útil – que registra o tempo total que a entidade permaneceu no sistema.

Detalhamento da Inicialização:

1. Geração das chegadas das primeiras entidades 2. Zerar o clock da simulação 3. Criação dos Vetores

o NewEntities – vetor que armazena as novas entidades temporariamente. o Details - vetor que mantém referência de todas as entidades do sistema o DueList – Vetor que lista todas as entidades cuja atividade B estão por

serem executadas na Fase B do algoritmo. o ToBeKilled – vetor que lista todas as entidades que já utilizaram todos os

serviços requisitados e devem ser retiradas do sistema. o CList – vetor que listas todos as estações servidoras que devem ser

verificadas se têm servidor livre e entidade na fila aguardando pelo atendimento, portanto verifica se há algum servidor que possa executar uma atividade C - BeginService.

Detalhamento da fase A:

1. Vetor TobeKilled é subtraído do Vetor Details 2. Vetor ToBeKilled é zerado 3. Vetor Details recebe todas as entidades do vetor NewEntities 4. O vetor NewEntities é zerado. 5. Selecionado todas entidades com o menor tempo no TimeCell e coloca no vetor Details. 6. Clock recebe o menor tempo.

Detalhamento da Fase B:

1. Todas as atividades Bs das entidades colocadas no vetor DueList são executadas: a. Arrive: A entidade é acrescentada ao fim da fila do serviço requisitado. Uma

nova entidade é criada e programada a sua chegada. b. EndService: A entidade é colocada no fim da fila do próximo serviço se

necessita de outro serviço ou é colocada no vetor ToBeKilled, caso tenha utilizado todos os serviços requisitados.

Page 10: MACSIM - SIMULAÇÃO DISCRETA UTLIZANDO O MODELO DE ... · 2 Simulação Discreta com JavaBeans Um framework de programação e modelagem baseado em componentes para aplicações

2417

Detalhamento da Fase C: 1. Todas as atividades Cs de todos os servidores de cada estação servidora são executadas

quando atendem as condições de haver um servidor livre e entidade solicitando serviço. a. BeginService: se houver um servir livre e uma entidade solicitando o serviço,

então o atendimento é iniciado. Em seguida é programado a atividade fim de atendimento - EndService segundo um valor aleatório obtido de uma distribuição.

Detalhamento da Finalização: Gerar os relatórios para análise pelo desenvolvedor do Experimento de Simulação Com o objetivo de ilustrar as idéias apresentadas na aplicação do algoritmo das Três Fases, as Figuras 6 e 7 mostram os Fluxogramas detalhados.

7 Borland JBuilder 8.0 O ambiente de desenvolvimento gráfico JBuilder 8.0 da Inprise (Borland) propicia um suporte conveniente para desenvolvimento e utilização de componentes JavaBeans. Para aqueles que não tem experiência suficiente com ambiente de programação, este ambiente é considerado uma boa opção por oferecer o melhor suporte no desenvolvimento de Javabeans. Um Bean Wizard disponibilizado permite especificação interativa de classes BeanInfo. O código gerado é de fácil leitura e escrito em um único método. Permite modificação manual e extensão do código de forma simples e direta. Atribuição de propriedades complexas, isto é propriedades as quais são beans por si só, também é suportado de forma elegante. A disponibilidade de que ferramenta que suportam JavaBeans é satisfatória. Entretanto, ambientes de programação existentes podem ser complexo de mais para serem usados por desenvolvedores de aplicação há ainda ferramentas construtoras de JavaBeans que sejam flexíveis o suficiente para serem configuradas como ferramentas de simulação.

Page 11: MACSIM - SIMULAÇÃO DISCRETA UTLIZANDO O MODELO DE ... · 2 Simulação Discreta com JavaBeans Um framework de programação e modelagem baseado em componentes para aplicações

2418

Início

Cria os vetoresNewEntities, Details ,

ToBeKilled

Geras as primeirasentidades

Coloca as novaentidades no vetor

NewEntities

Details<--Details-ToBeKilled

Details<--Details + NewEntities

Fim

Algoritmo de Simulação Discretabaseado na metodologia de Três Fases

Programa achegada das novas

entidades

Zera o clock dasimulação

Clcok<duration?

DueList<--Details(para t=t<<)

i<DueList.size( )?

i<-- 0

currEnt<--DueList(i)

currEnt.doNextB

i++

clock<--0

DueList<--0

cStarted<-- true

cStart<--false

cStarted=true?

i<--0

CList(i).dothisNow()

i++

i<CList.size( )?

Gera relatório

Figura 6- Fluxograma Geral do Algoritmo

Page 12: MACSIM - SIMULAÇÃO DISCRETA UTLIZANDO O MODELO DE ... · 2 Simulação Discreta com JavaBeans Um framework de programação e modelagem baseado em componentes para aplicações

2419

Arrive

qIn<--CurrEnt

Gera uma novaentidade

Coloca a novaentidade no vetor

NewEntities

ToBeKilled<--currEnt

qIn<--cuurent ( da próxima estação)

BeginService

Detalhamento das Atividades Arrive,Begin Service e EndService

Programa a chegadada nova entidade

Fim

Servidor<--free

Fim

cStarted<-- true

cStart<--true

qIn>0 eserver=free

?

Programa EndServicepara a entidade

Retira a entidade do inícioda fila

server<--busy

EndService

É a últimaestação?

Fim

Figura 7 – Detalhamento das Atividades Bs e Cs

8 Conclusão O objetivo inicial do framework Macsim foi avaliar a tecnologia JavaBeans como ferramenta de implementação de experimentos de simulação discreta. Para tanto foi construído um protótipo dos componentes Macsim e testado em experimentos de simulação básicos visando identificar correções e aperfeiçoamentos necessários. Como resultado destes testes, foi identificado que a possibilidade de inclusão de sistemas mais complexos ou a extensão do framework para permitir o desenvolvimento de simulação contínua ou combinada é viável, necessitando poucas alterações na diretriz adotada.

Page 13: MACSIM - SIMULAÇÃO DISCRETA UTLIZANDO O MODELO DE ... · 2 Simulação Discreta com JavaBeans Um framework de programação e modelagem baseado em componentes para aplicações

2420

Outro fato importante obtido deste trabalho implica que a mesma técnica utilizada no projeto pode ser aplicada para o desenvolvimento de sistemas de simulação mais complexos e dedicados. Além disso, outros tipos de sistemas, como por exemplo, sistemas de simulação de circuitos elétricos analógicos e digitais também poderão ter bibliotecas específicas desenvolvidas baseada na mesma tecnologia. Portanto a tecnologia JavaBeans se revela como uma ferramenta flexível de construção e manipulação de componentes específicos a uma área de aplicação. Neste trabalho foram investigados e avaliados a aplicação da linguagem de programação Java e o modelo de componentes JavaBeans como uma ferramenta de desenvolvimento da metodologia de simulação discreta baseada em componentes. O formalismo da simulação discreta fornece os conceitos fundamentais para a aplicação da metodologia de modelagem modular facilitando o desenvolvimento de componentes reutilizáveis. A combinação do formalismo da simulação discreta com a tecnologia JavaBeans se revela uma combinação capaz de desenvolver sistemas de simulação avançados.

Referências bibliográficas 1. H.M. Deitel and Deitel,P.J. (1997) Java: how to program. Prentice-Hall Inc, Upper Saddle

River, NJ. 2. J.A. Miller and J.Tao “Component-based Simulation Environments: JSIM as a Case Study

using Java Beans”, In: Proceedings of the 1998 Winter Simulation Conference, 1998, pp. 373-381.

3. H. Praehofer; A. Strizinger and J. Sametinger, Using JavaBeans to teach Simulation and

using Simulation to teach JavaBeans, In: Proceedings of the European Simulation Multiconfrence- ESM 98, Manchester, UK, Junho 16-19, 1998.

4. M. Pidd and R.A. Cassel, (1998) “Three Phase Simulation in Java”, In: Proceedings of the

1998 Winter Simulation Conference, 1998, pp. 367-371. 5. M. Pidd and R.A Cassel, (2000) Using Java to develop discrete event simulations. Journal of

Operational Research, 51, 4, 405-412. 6. M. Pidd (1998) Computer simulation in management science. (4th ed) John Wiley & Sons

Ltd, Chichester 7. M. Pidd (1995) Object orientation, discrete simulation and the three-phase approach. Journal

of Operational Research, 46, 362-374. 8. K.D. Tocher (1963) The Art of Simulation, English University Press, London.