• Nenhum resultado encontrado

O principal objetivo do nosso trabalho foi realizar uma instanciação do framework de geração dinâmica de processos para gerar planos de adaptação arquitetural sobre o ambiente OSGi, de maneira a avaliar a sua integração com um novo ambiente de execu- ção. A abordagem de Da Silva apresenta um framework genérico, capaz de proporcionar geração dinâmica de processos a diferentes domínios de aplicação, fornecendo pontos de customização bem definidos para tal.

Para instanciar o framework de geração dinâmica de processos com o ambiente OSGi,

seguimos a sua metodologia de instanciação definida em (SILVA, 2011). Apresentamos os

diversos artefatos necessários para customizar o framework, tais como: o metamodelo es- pecífico de domínio, para capturar as características do domínio; o modelo de domínio PDDL, que captura as características do ambiente que são necessárias para o planeja- mento; e os templates de tarefa, que definem as tarefas que podem ser utilizadas para compor os planos de adaptação. Além disso, implementamos diversos componentes neces- sário para realizar a integração entre o framework e o ambiente de execução.

Para realizar uma prova de conceito sobre a nossa instanciação do framework de ge- ração dinâmica de processos, realizamos uma implementação da aplicação de estudo de caso Comanche. Essa prova de conceito visou demonstrar o processo de reconfiguração da nossa abordagem. Para isso nós apresentamos os diversos artefatos que são gerados automaticamente pelo framework durante a geração e execução dos planos de adaptação em cenários sem e com a presença de falhas durante a execução dos workflows gerados. Em seguida, realizamos uma discussão sobre a integração do framework com o ambiente OSGi, apresentando as ferramentas e tecnologias que foram utilizadas. Também discu- timos as diversas tecnologias necessárias para a instanciação do framework, concluindo que instanciar o framework de geração dinâmica de processo não é uma tarefa trivial, e semelhante a qualquer abordagem de adaptação, necessita a presença de um especialista no domínio de aplicação e um especialista no ambiente no qual ele será instanciado.

Concluímos também que uma vez instanciado, o framework de geração dinâmica pode ser facilmente reutilizado para diferentes componentes e configurações arquiteturais. Dessa forma o administrador do sistema necessita apenas lidar com modelos arquiteturais, adi- cionando novos componentes e configurações da aplicação sem necessidade nenhuma de alterações na instanciação. Além disso, a instanciação pode ser utilizada para novas apli- cações que estejam de acordo com o metamodelo específico de domínio.

6.1

Contribuições

A instanciação do framework de geração dinâmica de processos sobre o ambiente OSGi gerou diversos artefatos que podemos citar como contribuições do nosso trabalho. A seguir listamos as que consideramos principais:

• Para representar os aplicações que executam sobre o ambiente OSGi, nós realizamos uma extensão do metamodelo da linguagem de descrição arquitetural xADL. O nosso metamodelo buscou levar em consideração as características do ambiente, além de tentar representar propriedades que podem ser utilizadas para o monitoramento das aplicações.

• Definimos também um modelo de domínio PDDL, que possui características do am- biente que são levadas em consideração durante a geração dos planos de adaptação. Regras de transformação foram definidas para traduzir os modelos de aplicações em problemas de planejamento PDDL, que por sua vez são utilizados para a geração dos planos de adaptação. Um plano de adaptação é composto por diversas tarefas que foram criadas de acordo com as operações que podem ser executadas sobre o ambiente OSGi. Para cada tarefa, foi implementado um modelo PDDL e uma implementação que é utilizada para compor o workflow gerado.

• Também citamos como contribuição a nossa arquitetura de integração entre o fra- mework de geração dinâmica de processos e o ambiente OSGi e a implementação dos diversos componentes que fazer parte dessa arquitetura.

• Por fim, citamos a própria instanciação do framework de geração dinâmica de pro- cessos como uma contribuição. Essa instanciação pode ser reutilizada por diversas aplicações OSGi que possam ser modeladas de acordo com o metamodelo criado.

6.2

Limitações

Apesar de não ser o foco do nosso trabalho, podemos citar como uma limitação da nossa abordagem o fato de estarmos utilizando em nossos experimentos um mecanismo de seleção arquitetural simples. Para selecionar uma nova arquitetura estamos apenas considerando um conjunto fixo de possíveis de configurações, e ao detectar a necessidade de uma adaptação, o componente Configurator escolhe a próxima configuração disponível. Dessa forma, nós não estamos considerando no processo global de adaptação da nossa abordagem o impacto da seleção arquitetural.

Uma outra limitação que podemos citar da nossa instanciação do framework de gera- ção dinâmica de processos deve-se ao fato do ambiente OSGi cuidar das conexões entre os bundles de forma implícita, ou seja, resolvendo de maneira automática as dependências entre os diversos bundles instalados no ambiente. Isso faz com que não tenhamos garantias de como os componentes (que são mapeados em bundles) estejam conectados no ambi- ente, invalidando assim algumas possíveis arquiteturas para o sistema. Por exemplo, se no ambiente houver mais de um bundle provendo uma mesma interface de serviço, não há como garantir qual serviço será utilizado por um outro bundle que depende desse serviço. No inicio da realização do nosso trabalho tínhamos como objetivo realizar experi-

mentos com a aplicação Stock Quotes utilizada por Da Silva em (SILVA, 2011), nosso

pensamento era ter uma base de comparação entre as duas instanciações. Porém devido as limitações do ambiente OSGi, não é possível utilizar a aplicação Stock Quotes com as mesmas configurações utilizadas nos experimentos de Da Silva. Dessa forma, não conse- guimos uma base de comparação com os experimentos realizados por Da Silva.

6.3

Trabalho Futuros

Como dito anteriormente, instanciar o framework de geração dinâmica de processo é uma tarefa complexa e demorada. Gerar uma documentação com tutoriais técnicos mais detalhados poderia facilitar o processo de instanciação do framework em outros ambiente. Uma vez que não estamos considerando o impacto da seleção de uma nova configura- ção arquitetural no processo de geração dos planos de adaptação, um dos trabalho futuros apontados é a integração do framework de geração dinâmica de processos com uma ferra- menta de seleção dinâmica de configurações arquiteturais. Existem na literatura algumas

2012). Particularmente, temos interesse em integrar o framework de geração de processos

a ferramenta MoSAC proposta por Silva em (SILVA et al., 2012). O MoSAC utiliza teoria

MAUT (Teoria da Utilidade Multiatributo) para tomada de decisão em um conjunto fi- nito de possibilidades, envolvendo múltiplos critérios a serem analisados de acordo com os objetivos da aplicação. Nosso trabalho se concentrou na fase Decide do ciclo de feedback control loops, integrar a instanciação do framework de geração dinâmica de processos a mecanismos de seleção arquitetural nos ajudaria a explorar as outras fases deste ciclo.

O ciclo de vida dos bundles no ambiente OSGi oferece poucos estados a serem alcan- çados. Por exemplo, o ambiente não oferece estados de bloqueio, quiescência ou mesmo características de transferência de estado entre os bundles. Como estas características não são oferecidas pelo ambiente, elas não são consideradas durante o planejamento. Neste sentido, um possível trabalho futuro seria realizar experimentos de desempenho na ins- tanciação do framework para verificar se a presença de menos predicados utilizados para expressar os problemas de planejamento tornaria a geração dos planos de adaptação mais rápida. Caso isso seja comprovado, explorar se há vantagens em utilizar técnicas de pla- nejamento baseado em inteligência artificial para seleção arquitetural.

Como destacamos anteriormente, o ambiente OSGi possui várias limitações que não permitiram uma melhor avaliação do framework de geração dinâmica de processos. Re- alizar as conexões dos bundles de forma implícita impossibilita a utilização de algumas configurações arquiteturais. Mesmo sabendo dessas limitações, mantivemos o ambiente OSGi no nosso trabalho por ele seguir uma especificação bem conhecida e cada vez mais utilizada na industria de desenvolvimento de software. Um caminho natural é colocar uma camada com um modelo de componentes sobre OSGi de tal forma que essas limitações sejam eliminadas. Um outro trabalho que apontamos é instanciação do framework de ge- ração dinâmica de processos em outros ambientes que ofereçam uma forma de conexão explícita entre os componentes, como por exemplo SCA.

Referências

AALST, W. M. et al. Design and implementation of the yawl system. In: PERSSON, A.; STIRNA, J. (Ed.). Advanced Information Systems Engineering. [S.l.]: Springer Berlin Heidelberg, 2004, (Lecture Notes in Computer Science, v. 3084). p. 142–159. ISBN 978-3-540-22151-7.

AALST, W. van der; HOFSTEDE, A. ter. Yawl: yet another workflow language. Information Systems, v. 30, n. 4, p. 245 – 275, 2005. ISSN 0306-4379.

ALLIANCE, O. S. G. Osgi service plataform, core-specification 4.2. September 2009. ALLIANCE, O. S. G. Osgi service plataform, enterprise-specification 4.2. March 2010. ALLIANCE, O. S. G. Osgi service plataform, core-specification 5.0. June 2012.

ANDRZEJAK, A.; HERMANN, U.; SAHAI, A. Feedbackflow-an adaptive workflow generator for systems management. In: Autonomic Computing, 2005. ICAC 2005. Proceedings. Second International Conference on. [S.l.: s.n.], 2005. p. 335 –336. BARESI, L.; GHEZZI, C. The disappearing boundary between development-time and run-time. In: Proceedings of the FSE/SDP workshop on Future of software engineering research. New York, NY, USA: ACM, 2010. (FoSER ’10), p. 17–22. ISBN 978-1-4503-0427-6. Disponível em: <http://doi.acm.org/10.1145/1882362.1882367>. BENCOMO, N. et al. Reflective component-based technologies to support dynamic variability. In: The Second International Workshop on Variability Modelling of Software-intensive Systems (VaMoS’08). [S.l.: s.n.], 2008.

BENEDITTO, M. E. M. D. Automating the reconfiguration for self-adaptable software. In: Proceedings of the 17th international doctoral symposium on Components and Architecture. New York, NY, USA: ACM, 2012. (WCOP ’12), p. 13–18. ISBN 978-1-4503-1348-3. Disponível em: <http://doi.acm.org/10.1145/2304676.2304680>. BENEDITTO, M. E. M. D.; WERNER, C. M. L. A declarative approach for software com- positional reconfiguration. In: Proceedings of the 11th International Workshop on Adaptive and Reflective Middleware. New York, NY, USA: ACM, 2012. (ARM ’12), p. 7:1–7:6. ISBN 978-1-4503-1609-5. Disponível em: <http://doi.acm.org/10.1145/2405679.2405686>. BRADBURY, J. S. et al. A survey of self-management in dynamic software architecture specifications. In: Proceedings of the 1st ACM SIGSOFT Workshop on Self-managed Systems. New York, NY, USA: ACM, 2004. (WOSS ’04), p. 28–33. ISBN 1-58113-989-6. Disponível em: <http://doi.acm.org/10.1145/1075405.1075411>.

BRUN, Y. et al. Engineering self-adaptive systems through feedback loops. Software Engineering for Self-Adaptive Systems, Springer, p. 48–70, 2009.

BRUNETON, E. et al. The fractal component model and its support in java: Experiences with auto-adaptive and reconfigurable systems. Softw. Pract. Exper., John Wiley & Sons, Inc., New York, NY, USA, v. 36, n. 11-12, p. 1257–1284, set. 2006. ISSN 0038-0644. Disponível em: <http://dx.doi.org/10.1002/spe.v36:11/12>.

CHENG, B. H.; LEMOS, R.; AL. et. Software engineering for self-adaptive systems. In: CHENG, B. H. et al. (Ed.). Berlin, Heidelberg: Springer-Verlag, 2009. cap. Software Engineering for Self-Adaptive Systems: A Research Roadmap, p. 1–26. ISBN 978-3-642-02160-2.

CHENG, S. et al. An architecture for coordinating multiple self-management systems. In: IEEE. Software Architecture, 2004. WICSA 2004. Proceedings. Fourth Working IEEE/IFIP Conference on. [S.l.], 2004. p. 243–252.

COULSON, G. et al. A generic component model for building systems software. ACM Trans. Comput. Syst., ACM, New York, NY, USA, v. 26, n. 1, p. 1:1–1:42, mar. 2008. ISSN 0734-2071. Disponível em: <http://doi.acm.org/10.1145/1328671.1328672>. DAMIANOU, N. et al. The ponder policy specification language. In: Proceedings of the International Workshop on Policies for Distributed Systems and Networks. London, UK, UK: Springer-Verlag, 2001. (POLICY ’01), p. 18–38. ISBN 3-540-41610-2. Disponível em: <http://dl.acm.org/citation.cfm?id=646962.712108>.

DEELMAN, E. et al. Mapping abstract complex workflows onto grid environments. Journal of Grid Computing, Springer, v. 1, n. 1, p. 25–39, 2003.

DOBSON, S. et al. A survey of autonomic communications. ACM Trans. Auton. Adapt. Syst., ACM, New York, NY, USA, v. 1, n. 2, p. 223–259, dez. 2006. ISSN 1556-4665. Disponível em: <http://doi.acm.org/10.1145/1186778.1186782>.

DUSTDAR, S.; SCHREINER, W. A survey on web services composition. International Journal of Web and Grid Services, Inderscience, v. 1, n. 1, p. 1–30, 2005.

FONSECA, F. L.; BENEDITTO, M. E. M. D.; WERNER, C. M. L. Um mecanismo extensível para a execução de um plano de reconfiguração arquitetural sob o framework osgi+ipojo. In: Workshop sobre Sistemas Autônomos (AutoSoft) (CBSOFT ’12). [S.l.: s.n.], 2012.

FOX, M.; LONG, D. Pddl2.1: An extension to pddl for expressing temporal planning domains. Journal of Artificial Intelligence Research, v. 20, p. 2003, 2003.

GEREVINI, A.; LONG, D. Preferences and soft constraints in pddl3. In: ICAPS Workshop on Planning with Preferences and Soft Constraints. [S.l.: s.n.], 2006. p. 46–53. HANSEN, K. M.; INGSTRUP, M. Modeling and analyzing architectural change with alloy. In: Proceedings of the 2010 ACM Symposium on Applied Computing. New York, NY, USA: ACM, 2010. (SAC ’10), p. 2257–2264. ISBN 978-1-60558-639-7. Disponível em: <http://doi.acm.org/10.1145/1774088.1774560>.

INGSTRUP, M.; HANSEN, K. Modeling architectural change: Architectural scripting and its applications to reconfiguration. In: Software Architecture, 2009 European Conference on Software Architecture. WICSA/ECSA 2009. Joint Working IEEE/IFIP Conference on. [S.l.: s.n.], 2009. p. 337 –340.

JOOLIA, A. et al. Mapping adl specifications to an efficient and reconfigurable runtime component platform. In: Proceedings of the 5th Working IEEE/IFIP Conference on Software Architecture. Washington, DC, USA: IEEE Computer Society, 2005. (WICSA ’05), p. 131–140. ISBN 0-7695-2548-2. Disponível em:

<http://dx.doi.org/10.1109/WICSA.2005.42>.

JOUAULT, F. et al. Atl: A model transformation tool. Sci. Comput. Pro- gram., Elsevier North-Holland, Inc., Amsterdam, The Netherlands, The Nether- lands, v. 72, n. 1-2, p. 31–39, jun. 2008. ISSN 0167-6423. Disponível em:

<http://dx.doi.org/10.1016/j.scico.2007.08.002>.

KRAMER, J.; MAGEE, J. Self-managed systems: an architectural challenge. In: 2007 Future of Software Engineering. Washington, DC, USA: IEEE Computer Society, 2007. (FOSE ’07), p. 259–268. ISBN 0-7695-2829-5. Disponível em:

<http://dx.doi.org/10.1109/FOSE.2007.19>.

LOPES, A. B. Um framework para configuração e gerenciamento de recursos e componentes em sistemas multimídia distribuídos abertos. Tese (Doutorado) — Universidade Estadual de Campinas - UNICAMP, 2006.

MCKINLEY, P. K. et al. Composing adaptive software. Computer, v. 37, n. 7, p. 56 – 64, july 2004. ISSN 0018-9162.

MEDEIROS, J. A. de; LOPES, A. B.; SILVA, C. E. da. Towards open self-adaptation in a distributed multimedia middleware platform. In: III Workshop em Sistemas Distribuídos Autônomo. [S.l.: s.n.], 2013. (WoSiDA ’13).

MORIN, B. et al. Weaving aspect configurations for managing system variability. In: In VaMoS’08: 2nd Int. Workshop on Variability Modelling of Software intensive Systems. [S.l.: s.n.], 2008.

OREIZY, P. et al. An architecture-based approach to self-adaptive software. Intelligent Systems and their Applications, IEEE, v. 14, n. 3, p. 54 –62, may/jun 1999. ISSN 1094-7167.

PINTO, F. A. P. Um framework baseado em modelos para desenvolvimento de sistemas multimídia distribuídos autoadaptativos. Dissertação (Mestrado) — Universidade Federal do Rio Grande do Norte, 2011.

SALEHIE, M.; TAHVILDARI, L. Self-adaptive software: Landscape and re- search challenges. ACM Trans. Auton. Adapt. Syst., ACM, New York, NY, USA, v. 4, n. 2, p. 14:1–14:42, maio 2009. ISSN 1556-4665. Disponível em:

<http://doi.acm.org/10.1145/1516533.1516538>.

SILVA, C. E. da. Dynamic generation of adaptation plans for self-adaptive software systems. Tese (Doutorado) — The University of Kent at Canterbury, May 2011. SILVA, C. E. da; LEMOS, R. de. Using dynamic workflows for coordinating self- adaptation of software systems. In: Proceedings of the 2009 ICSE Workshop on Software Engineering for Adaptive and Self-Managing Systems. Washington, DC, USA: IEEE Computer Society, 2009. (SEAMS ’09), p. 86–95. ISBN 978-1-4244-3724-5. Disponível em: <http://dx.doi.org/10.1109/SEAMS.2009.5069077>.

SILVA, C. E. da; LEMOS, R. de. Dynamic plans for integration testing of self- adaptive software systems. In: Proceedings of the 6th International Symposium on Software Engineering for Adaptive and Self-Managing Systems. New York, NY, USA: ACM, 2011. (SEAMS ’11), p. 148–157. ISBN 978-1-4503-0575-4. Disponível em:

<http://doi.acm.org/10.1145/1988008.1988029>.

SILVA, C. E. da; LEMOS, R. de. A framework for automatic generation of processes for self-adaptive software systems. Informatica: An International Journal of Computing and Informatics, Slovene Society Informatika, Vozarski pot 12 1000 Ljubljana, Slovenia, v. 35, n. 1, p. 3–13, 2011.

SILVA, D. C. da et al. Selecting architecture configurations in self-adaptive systems using qos criteria. In: Proceedings of the Simpósio Brasileiro de Componentes, Arquitetura e Reutilização de Software. [S.l.: s.n.], 2012. (SBCARS ’12).

SOARES, F. H. L.; LOPES, A. B.; SILVA, C. E. da. Instanciação de um framework de geração dinâmica de processos para reconfiguração arquitetural em ambiente osgi. In: III Workshop em Sistemas Distribuídos Autônomo. [S.l.: s.n.], 2013. (WoSiDA ’13).

SYKES, D. et al. From goals to components: a combined approach to self-management. In: Proceedings of the 2008 international workshop on Software engineering for adaptive and self-managing systems. New York, NY, USA: ACM, 2008. (SEAMS ’08), p. 1–8. ISBN 978-1-60558-037-1. Disponível em: <http://doi.acm.org/10.1145/1370018.1370020>. TAJALLI, H. et al. Plasma: a plan-based layered architecture for software model-driven adaptation. In: Proceedings of the IEEE/ACM international conference on Automated software engineering. New York, NY, USA: ACM, 2010. (ASE ’10), p. 467–476. ISBN 978-1-4503-0116-9. Disponível em: <http://doi.acm.org/10.1145/1858996.1859092>.

Documentos relacionados