Search for Dark Matter Annihilations in the Sun using data from 3 years of
5.4 Event Selection
Neste capítulo, foram listadas as tecnologias usadas pelo eCaMid para implementar seus mecanismos de coordenação e compartilhamento de estado. Em seguida, foram mencionados vários trabalhos que visam a utilização de middleware para implementar várias funcionalidades como multitenacidade, interoperabilidade, elasticidade e dar apoio a outros requisitos não funcionais. Uma breve discussão foi iniciada para elicitar a motivação do desenvolvimento do eCaMid.
6
Considerações Finais
Os primeiros capítulos explicaram as principais motivações para o desenvolvimento do eCaMid e as ideias básicas que fundamentam os conceitos utilizados na concepção da sua arquitetura. Foram explicados os principais conceitos de computação em nuvem e elasticidade. Também foi realizado um estudo sobre os padrões arquiteturais e de projeto, e seus relaciona- mentos, para definir os blocos básicos e uma linguagem padrão para os componentes do projeto do eCaMid.
O terceiro capítulo introduziu os aperfeiçoamentos realizados à arquitetura original, para aprimorar o suporte à elasticidade. Como contribuições principais do eCaMid, podemos mencionar o uso de mecanismos de coordenação, replicação e balanceamento de carga, que visam aumentar a escalabilidade do middleware quando novos nós são adicionados, e continuar funcionando quando esses nós são desligados. Adicionalmente, o eCaMid introduziu novas funcionalidades (tarefas periódicas, e comunicação Publish/Subscribe) que aumentam o escopo do eCaMid para tipos de carga de trabalho que são complementares ao estilo de comunicação de middlewares orientados a objetos e são relevantes para o paradigma de computação em nuvem. Uma avaliação experimental foi usada, no quarto capítulo, para avaliar o comportamento do eCaMid em diferentes cenários. Dada as condições do experimento, os mecanismos de balanceamento de carga do eCaMid mostraram um melhor resultado quando foram utilizados objetos remotos que não possuem estado. Quando esses objetos remoto possuem estado, a sincronização deste entre vários nós apresentou uma perda considerável de desempenho, mas em contrapartida, tornou possível que o mesmo objeto fosse acessado consistentemente entre vários nós.
No quinto capítulo, foi realizado um breve estudo sobre os trabalhos de middleware que foram desenvolvidos para a nuvem. Foram identificados diversos pontos comuns e divergentes entre o eCaMid e esses trabalhos, assim como estratégias usadas nestes que podem servir como melhorias para o eCaMid em trabalhos futuros.
Através deste trabalho foi possível criar um middleware orientado a objetos que é capaz de utilizar a elasticidade de um ambiente de nuvem para aprimorar seus mecanismos de distribuição. Este middleware se baseou mas melhores práticas para o desenvolvimento de aplicações na
nuvem, levando em conta as peculiaridades deste ambiente e desenvolveu mecanismos de suporte à elasticidade dentro do próprio middleware.
Ainda que o eCaMid careça da mesma maturidade de outras soluções de middleware do mercado e da academia, este pode servir como prova de conceito para implementação de mecanismos de suporte à elasticidade em outras plataformas mais maduras. Os mecanismos usados neste trabalho podem também ser adaptados para outros tipos de modelo de comunicação, como é o caso de servidores web, balanceadores de carga inteligentes e servidores de aplicação.
6.1
Trabalhos Futuros
A evolução do eCaMid pode ser realizada em diversas direções. O sistema atual de sincronização de estado do eCaMid é limitado pelas capacidades do Infinispan, que provê as abstrações necessárias para a implementação de um serviço de armazenamento em memória distribuído. O eCaMid pode ser expandido para utilizar outros key-value stores distribuídos, como é o caso do Redis1e Memcached2. O desempenho destas soluções de armazenamento pode ser comparado e avaliado em que cenários cada uma dessas tecnologias apresenta o melhor resultado.
O suporte à elasticidade pode ser aprimorado através da implementação de um serviço que realize a implantação e provisionamento de máquinas virtuais de forma automática, com base em parâmetros de qualidade coletados a partir dos componentes de gerenciamento do eCaMid. O uso de multitenancy possibilitará um controle mais granular sobre a elasticidade, provendo isolamento a múltiplas aplicações em um mesmo cluster do eCaMid.
O uso de interoperabilidade entre múltiplas nuvens pode favorecer à implantação do eCaMid em um cenário multi-cluster. Este cenário consiste em um conjunto de clusters que utilizam algum mecanismo de integração (como mensagens assíncronas) e balancemento de carga de acordo garantias de nível de serviço de múltiplos provedores ou distribuição geográfica.
A implementação atual do eCaMid não oferece suporte a mecanismos de segurança. Esta implementação poderia ser estendida para incluir serviços de autenticação e controle de acesso baseado em políticas e papéis.
1http://redis.io/
Referências
ABBADI, I. Middleware Services at Cloud Virtual Layer. In: COMPUTER AND INFORMATION TECHNOLOGY (CIT), 2011 IEEE 11TH INTERNATIONAL CONFERENCE ON. Anais. . . [S.l.: s.n.], 2011. p.115–120.
ABBADI, I. M. Middleware Services at Cloud Application Layer. In: ABRAHAM, A. et al. (Ed.). Advances in Computing and Communications. [S.l.]: Springer Berlin
Heidelberg, 2011. p.557–571. (Communications in Computer and Information Science, v.193). 10.1007/978-3-642-22726-4_58.
AMIN, M. B. et al. Intercloud Message Exchange Middleware. In: INTERNATIONAL CONFERENCE ON UBIQUITOUS INFORMATION MANAGEMENT AND
COMMUNICATION, 6., New York, NY, USA. Proceedings. . . ACM, 2012. p.79:1–79:7. (ICUIMC ’12).
APACHE JMeter. Accessed: 2014-04-30, http://jmeter.apache.org/.
APACHE Mesos. Accessed: 2014-07-20, http://mesos.apache.org/.
APACHE Zookeeper. Accessed: 2014-07-15, http://zookeeper.apache.org/.
AZEEZ, A. et al. Multi-tenant SOA middleware for cloud computing. In: CLOUD
COMPUTING (CLOUD), 2010 IEEE 3RD INTERNATIONAL CONFERENCE ON. Anais. . . [S.l.: s.n.], 2010. p.458–465.
BABAR, M. A.; CHAUHAN, M. A. A Tale of Migration to Cloud Computing for Sharing Experiences and Observations. In: ND INTERNATIONAL WORKSHOP ON SOFTWARE ENGINEERING FOR CLOUD COMPUTING, 2., New York, NY, USA. Proceedings. . . ACM, 2011. p.50–56. (SECLOUD ’11).
BAKOUCH, H. S. Probability, Markov chains, queues, and simulation. Journal of Applied Statistics, [S.l.], v.38, n.8, p.1746–1746, 2011.
BALIGA, J. et al. Green Cloud Computing: balancing energy in processing, storage, and transport. Proceedings of the IEEE, [S.l.], v.99, n.1, p.149–167, Jan 2011.
BAN, B.; BLAGOJEVIC, V. Reliable group communication with JGroups 3.x. Accessed: 2014-06-30, http://www.jgroups.org/manual/html/index.html.
BEHL, J. et al. Providing Fault-tolerant Execution of Web-service-based Workflows Within Clouds. In: ND INTERNATIONAL WORKSHOP ON CLOUD COMPUTING PLATFORMS, 2., New York, NY, USA. Proceedings. . . ACM, 2012. p.7:1–7:6. (CloudCP ’12).
BUSCHMANN, F.; HENNEY, K.; SCHMIDT, D. C. Pattern-Oriented Software
Architecture Volume 4: a pattern language for distributed computing (v. 4). [S.l.]: Wiley, 2007.
CALHEIROS, R. N. et al. The Aneka platform and QoS-driven resource provisioning for elastic applications on hybrid Clouds. Future Generation Computer Systems, [S.l.], v.28, n.6, p.861 – 870, 2012. Including Special sections SS: Volunteer Computing and Desktop Grids and SS:
CAMPBELL, R.; MONTANARI, M.; FARIVAR, R. A middleware for assured clouds. Journal of Internet Services and Applications, [S.l.], v.3, n.1, p.87–94, 2012.
CHAUDHARY, N. et al. JBoss Enterprise Application Platform 6.2 Administration and Configuration Guide. Accessed: 2014-06-30, https://access.redhat.com/ documentation/en-US/JBoss_Enterprise_Application_Platform/6.2/ html/Administration_and_Configuration_Guide/index.html.
DRAGO, I. et al. Inside Dropbox: understanding personal cloud storage services. In: ACM CONFERENCE ON INTERNET MEASUREMENT CONFERENCE, 2012., New York, NY, USA. Proceedings. . . ACM, 2012. p.481–494. (IMC ’12).
EMMERICH, W.; KAVEH, N. Component technologies: java beans, com, corba, rmi, ejb and the corba component model. In: SOFTWARE ENGINEERING, 2002. ICSE 2002.
PROCEEDINGS OF THE 24RD INTERNATIONAL CONFERENCE ON. Anais. . . [S.l.: s.n.], 2002. p.691–692.
FOX, A. et al. Above the clouds: a berkeley view of cloud computing. Dept. Electrical Eng. and Comput. Sciences, University of California, Berkeley, Rep. UCB/EECS, [S.l.], v.28, p.13, 2009.
FURHT, B. Cloud Computing Fundamentals. In: FURHT, B.; ESCALANTE, A. (Ed.). Handbook of Cloud Computing. [S.l.]: Springer US, 2010. p.3–19.
GAMMA, E. et al. Design Patterns: abstraction and reuse of object-oriented design. In: NIERSTRASZ, O. (Ed.). ECOOP’ 93 — Object-Oriented Programming. [S.l.]: Springer Berlin Heidelberg, 1993. p.406–431. (Lecture Notes in Computer Science, v.707).
GHOSH, S. Distributed systems: an algorithmic approach. [S.l.]: CRC press, 2010.
GORTON, I. Essential software architecture. [S.l.]: Springer, 2011.
GUPTA, I. et al. Kelips: building an efficient and stable p2p dht through increased memory and background overhead. In: KAASHOEK, M.; STOICA, I. (Ed.). Peer-to-Peer Systems II. [S.l.]: Springer Berlin Heidelberg, 2003. p.160–169. (Lecture Notes in Computer Science, v.2735).
HERRICK, D. R. Google This!: using google apps for collaboration and productivity. In: ANNUAL ACM SIGUCCS FALL CONFERENCE: COMMUNICATION AND
COLLABORATION, 37., New York, NY, USA. Proceedings. . . ACM, 2009. p.55–64. (SIGUCCS ’09).
HOHPE, G.; WOOLF, B. Enterprise integration patterns: designing, building, and deploying messaging solutions. [S.l.]: Addison-Wesley Professional, 2004.
HOMER, A. et al. Cloud Design Patterns: prescriptive architecture guidance for cloud applications. [S.l.]: Microsoft patterns & practices, 2014.
HYPERDEX. Accessed: 2014-07-20, http://hyperdex.org/.
JAIN, R. The art of computer system performance analysis: techniques for experimental design, measurement, simulation and modeling. New York: John Willey, [S.l.], 1991.
JAYARAM, K. Elastic Remote Methods. In: EYERS, D.; SCHWAN, K. (Ed.). Middleware 2013. [S.l.]: Springer Berlin Heidelberg, 2013. p.143–162. (Lecture Notes in Computer Science, v.8275).
JIN, H. et al. Tools and Technologies for Building Clouds. In: ANTONOPOULOS, N.; GILLAM, L. (Ed.). Cloud Computing. [S.l.]: Springer London, 2010. p.3–20. (Computer Communications and Networks).
KäCHELE, S.; HAUCK, F. J. Component-based Scalability for Cloud Applications. In:
INTERNATIONAL WORKSHOP ON CLOUD DATA AND PLATFORMS, 3., New York, NY, USA. Proceedings. . . ACM, 2013. p.19–24. (CloudDP ’13).
KEMP, C.; GYGER, B. Professional Heroku Programming. [S.l.]: John Wiley & Sons, 2013.
KIRCHER, M.; JAIN, P. Pattern-oriented software architecture vol 3: patterns for resource management. [S.l.]: Wiley, 2004.
LEWIS, G. Role of Standards in Cloud-Computing Interoperability. In: SYSTEM SCIENCES (HICSS), 2013 46TH HAWAII INTERNATIONAL CONFERENCE ON. Anais. . . [S.l.: s.n.], 2013. p.1652–1661.
MAFFEIS, S. et al. The Object Group Design Pattern. In: COOTS. Anais. . . [S.l.: s.n.], 1996. v.96, p.12–12.
MARCHIONI, F. Infinispan Data Grid Platform. [S.l.]: Packt Publishing Ltd, 2012.
MARSTON, S. et al. Cloud computing — The business perspective. Decision Support Systems, [S.l.], v.51, n.1, p.176 – 189, 2011.
MAXIMILIEN, E. M. et al. IBM Altocumulus: a cross-cloud middleware and platform. In: ACM SIGPLAN CONFERENCE COMPANION ON OBJECT ORIENTED PROGRAMMING SYSTEMS LANGUAGES AND APPLICATIONS, 24., New York, NY, USA. Proceedings. . . ACM, 2009. p.805–806. (OOPSLA ’09).
MERLE, P.; ROUVOY, R.; SEINTURIER, L. A reflective platform for highly adaptive multi-cloud systems. In: ADAPTIVE AND REFLECTIVE MIDDLEWARE ON
PROCEEDINGS OF THE INTERNATIONAL WORKSHOP, New York, NY, USA. Anais. . . ACM, 2011. p.14–21. (ARM ’11).
MONTRESOR, A.; DAVOLI, R.; BABAOGLU, O. Middleware for Dependable Network Services in Partitionable Distributed Systems. SIGOPS Oper. Syst. Rev., New York, NY, USA, v.35, n.1, p.73–96, Jan. 2001.
MORAIS, T. de; LIBERALQUINO, D.; ROSA, N. Cloud-Aware Middleware. In: ADVANCED INFORMATION NETWORKING AND APPLICATIONS (AINA), 2013 IEEE 27TH
INTERNATIONAL CONFERENCE ON. Anais. . . [S.l.: s.n.], 2013. p.780–787.
OPENSTACK Cloud Administrator Guide. Accessed: 2014-06-20,
http://docs.openstack.org/admin-guide-cloud/content/.
RANJAN, R. et al. Peer-to-Peer Cloud Provisioning: service discovery and load-balancing. In: ANTONOPOULOS, N.; GILLAM, L. (Ed.). Cloud Computing. [S.l.]: Springer London, 2010. p.195–217. (Computer Communications and Networks).
REESE, G. Cloud application architectures: building applications and infrastructure in the cloud. [S.l.]: "O’Reilly Media, Inc.", 2009.
RIMAL, B.; CHOI, E.; LUMB, I. A Taxonomy, Survey, and Issues of Cloud Computing Ecosystems. In: ANTONOPOULOS, N.; GILLAM, L. (Ed.). Cloud Computing. [S.l.]: Springer London, 2010. p.21–46. (Computer Communications and Networks).
SADJADI, S. M.; MCKINLEY, P. K. A survey of adaptive middleware. Michigan State University Report MSU-CSE-03-35, [S.l.], 2003.
SANDERSON, D. Programming Google App Engine: build and run scalable web apps on google’s infrastructure. [S.l.]: "O’Reilly Media, Inc.", 2009.
SCHMIDT, D. C. Middleware for Real-time and Embedded Systems. Commun. ACM, New York, NY, USA, v.45, n.6, p.43–48, June 2002.
SCHMIDT, D. C. et al. Pattern-Oriented Software Architecture, Patterns for Concurrent and Networked Objects. [S.l.]: John Wiley & Sons, 2013. v.2.
SHEN, H.; XU, C.-Z. Hash-based proximity clustering for efficient load balancing in
heterogeneous {DHT} networks. Journal of Parallel and Distributed Computing, [S.l.], v.68, n.5, p.686 – 702, 2008.
SIEGELE, L. Let it rise: a special report on corporate it. [S.l.]: Economist Newspaper, 2008.
SURTANI, M. et al. Infinispan User Guide. Accessed: 2014-06-30,
http://infinispan.org/docs/6.0.x/user_guide/user_guide.html.
TALUKDER, A.; ZIMMERMAN, L.; A, P. Cloud Economics: principles, costs, and benefits. In: ANTONOPOULOS, N.; GILLAM, L. (Ed.). Cloud Computing. [S.l.]: Springer London, 2010. p.343–360. (Computer Communications and Networks).
TURAN, M. S. et al. Recommendation for password-based key derivation. NIST special publication, [S.l.], v.800, p.132, 2010.
VANBRABANT, R. Google Guice: agile lightweight dependency injection framework. [S.l.]: Apress, 2008.
VARIA, J. Architecting for the cloud: best practices. Amazon Web Services, [S.l.], 2010.
VARIA, J.; MATHEW, S. Overview of amazon web services. Amazon Web Services, [S.l.], 2012.
VÖLTER, M.; KIRCHER, M.; ZDUN, U. Remoting Patterns: foundations of enterprise, internet and realtime distributed object middleware. [S.l.]: Wiley. com, 2005.