A Service Reusability-Centric Process for Developing Software-as-a-Service

서비스 재사용성 중심의 Software-as-a-Service 개발 프로세스

  • Received : 2010.03.24
  • Accepted : 2010.05.10
  • Published : 2010.07.15

Abstract

Cloud Computing is emerged as an effective reuse paradigm, where service providers operate hardware and software and as a service, and service consumers invoke the service through Internet. Software-as-a-Service (SaaS) is a type of cloud services, where the whole software is designed as a service so that several consumers can reuse the SaaS. While tradition software applications are developed for a specific organization, SaaS is developed for multiple users in the various organizations. Hence, reusability is very essential characteristic of SaaS. Reusability is defined as a metric of how effective and efficient software functionalities can be used by various users. Reusability in SaaS is evaluated by considering three sub-characteristics; applicability, adaptability, and scalability. Since such a SaaS has considerable differences and characteristics from traditional software applications, conventional methods including object-oriented modeling, component-based development method, and service-oriented architecture (SOA) service development method would be limited in developing services which can fulfill these three sub-characteristics related to reusability as well as SaaS-intrinsic characteristics. Hence, there is a great demand for effective processes for developing SaaS cloud services. In this paper, we present a practical process for developing SaaS, which focuses on ensuring reusability. And by performing a case study with our proposed SaaS development process, we evaluate applicability of our proposed process and explain how the process is used in a real domain. Then, we compare our proposed process with others for verifying our study. Through the proposed process, cloud services with high quality can be more effectively developed.

클라우드 컴퓨팅은 하드웨어와 소프트웨어의 자원을 서비스 제공자 서버에 운영하고, 소비자가 인터넷을 통하여 필요한 서비스를 활용하는 재사용 기반의 컴퓨팅 방식이다. 클라우드 서비스의 한 형태인 SaaS(Software-as-a-Service)는 소프트웨어를 하나의 서비스로 설계 개발한 후, 다양한 소비자들이 재사용하도록 하는 컴퓨팅을 지향한다. 기존의 소프트웨어 어플리케이션은 특정한 하나의 조직을 대상으로 개발하였으나, SaaS는 서비스의 형태로 소프트웨어의 전체 기능을 필요로 하는 다양한 조직에 소속된 다양한 소비자들이 사용할 수 있게 개발된다. 이것은 소비자가 자신이 원하는 기능의 수행을 위해 직접 SaaS를 설정할 수 없게 하여 SaaS 개발에 재사용성이 더욱 강조되게 한다. 하지만 기존의 객체지향 개발 방법론, 컴포넌트 기반 개발 기법, SOA 개발 기법들은 전통적인 소프트웨어 어플리케이션과 다른 SaaS가 가지는 재사용성의 특징을 반영한 설계와 구현을 지원하는 지침과 장치가 거의 없다. 따라서 본 논문에서는 이러한 문제를 해결하기 위해 기존 재사용성의 정의를 확장하여 SaaS의 재사용성을 적용성, 적응성, 확장성의 부 특성으로 구분하고 이를 반영한 재사용성 중심의 개발 프로세스를 제시한다. SaaS 재사용성의 각부 특성은 제시하는 개발 프로세스의 분석과 설계를 위한 각 활동에 직 간접적으로 반영되어 보다 효과적으로 SaaS 재사용성을 향상시킨다. 제시된 프로세스를 적용하면 보다 체계적이고 효과적으로 재사용성 중심의 SaaS 개발을 유도할 수 있다.

Keywords

Acknowledgement

Supported by : 국방과학연구소

References

  1. Gillett, F.E., "Future View: New Tech Ecosystems of Cloud, Cloud Services, and Cloud Computing," Forrester Research Paper, 2008.
  2. Turner, M., Budgen, D., and Brereton, P., "Turning Software into a Service," IEEE Computer, vol.36, no.10, pp.38-44, 2003. https://doi.org/10.1109/MC.2003.1236470
  3. Kim, S.D., "Software Reusability," Wiley Encyclopedia of Computer Science and Engineering, vol. 4, pp.2679-2689, 2009.
  4. Espadas, J., Concha, D., and Molina, A., "Application Development over Software-as-a- Service platforms," In Proceedings of Software Engineering Advances(ICSEA 2008), IEEE, pp.97-104, October, 2008.
  5. Kwok, T., Nguyen, T., Lam, L., "A Software as a Service with Multi-tenancy Support for an Electronic Contract Management Application," In Proceedings of IEEE International Conference on Services Computing (SCC 2008), pp.179-186, 2008.
  6. Mietzner, R., Metzger, A., Leymann, F., and Pohl, K., "Variability modeling to support customization and deployment of multi-tenant-aware Software as a Service applications," In Proceedings of 2009 ICSE Workshop on Principles of Engineering Service Oriented Systems (PESOS 2009), pp.18-25, 2009.
  7. Choi, S. W., Chang, S. H., and Kim, S. D., "A Systematic Methodology for Developing Component Frameworks," In Proceedings of 7th International Conference on Fundamental Approaches to Software Engineering (FASE 2004), Lecture Notes in Computer Science 2984, pp.359-373, 2004.
  8. Kim, S.D., Her, J.S., and Chang, S.H., "A Theoretical Foundation of Variability in Component- Based Development," Information and Software Technology(IST), vol.47, pp.663-673, July, 2005. https://doi.org/10.1016/j.infsof.2004.11.007
  9. Software Engineering - Product Quality - Part 1: Quality Model. ISO/IEC 9126-1, June, 2001.
  10. Laplante, P.A., Zhang, J., and Voas, J., "What's in a Name? Distinguishing between SaaS and SOA," IT Professional, vol.10, no.3, pp.46-50, May/June 2008.
  11. Her, J.S., La, H.J., and Kim, S.D., "A Formal Approach to Devising a Practical Method for Modeling Reusable Service," In Proceedings of 2008 IEEE International Conference on e-Business Engineering (ICEBE 2008), pp.221-228, October 22-24, 2008.
  12. Chang, S.H. and Kim, S.D., "A SOAD Approach to Developing Adaptable Services," In Proceedings of IEEE International Conference on Services Computing (SCC 2007), pp.713-714, 2007.
  13. Gamma, E., Helm, R., Johnson, R., and Vlissides, J., Design Patterns: Elements of Reusable Object- Oriented Software, Addison Wesley Professional, 1994.
  14. Gomma, H., Designing Software Product Lines with UML: From Use Cases to Pattern-Based Software Architectures, Addison Wesley Professional, 2004.
  15. Chong, F., Carraro G., and Wolter, R., "Multi- Tenant Data Architecture," MSDN Architecture Center, 2006. http://msdn2.microsoft.com/
  16. Rozanski, N. and Woods, E., Software Systems Architecture: Working with Stakeholders Using Viewpoints and Perspectives, Addison-Wesley, 2005.
  17. Jimenez-Peris, R., Patiño-Martinez, M., Kemme, B., Perez-Sorrosal, F., and Serrano, D., "A System of Architectural Patterns for Scalable, Consistent and Highly Available Mult-Tier Service-Oriented Infrastructure," Architecting Dependable Systems VI, Lecture Notes in Computer Science 5835, pp. 1-23, 2009.
  18. Hennicker, R. and Koch, N., "Modeling the User Interface of Web Applications with UML," In Proceedings of Workshop of the pUML-Group held together with the UML 2001 on Practical UML-Based Rigorous Development Methods - Countering or Integrating the eXtremists, pp. 158-172, 2001.
  19. IEEE Computer Society and ACM, Guide to the Software Engineering Body of Knowledge (SWEBOK), IEEE Computer Socity, 2004.
  20. Pressman, R., Software Engineering: A Practitioner's Approach 6th edition, McGraw-Hill, 2005.