Developing a Service-oriented Architecture (SOA)- based Product Management Platform Under SaaS Model.
1. Developing a Service-oriented Architecture
(SOA)- based Product Management
Platform Under SaaS Model
KOUIS Amine
amine.kouis@gmail.com
http://aminekouis.com
June 22, 2017
4. SoftVision is a web platform based on SOA under
SAAS model consist of:
4
Introduction
Software as a Service
Service Oriented Architectures
REST architectural
Context & Conclusion
Product
Management
module
Contact
Management
module
Inventory
Management
module
6. 6
Introduction
Software as a Service
Service Oriented Architectures
REST architectural
Context & Conclusion
Software as a service is a software licensing and delivery
model in which software is licensed on a subscription basis
and is centrally hosted. It is sometimes referred to as "on-
demand software". SaaS is typically accessed by users
using a thin client via a web browser.
7. 7
Introduction
Software as a Service
Service Oriented Architectures
REST architectural
Context & Conclusion
• Accessible from anywhere
• Lower cost of entry
• Pay per use or subscription based payment methods
• Integration and scalability
• Faster implementation
Advantages of SAAS
8. 8
Introduction
Software as a Service
Service Oriented Architectures
REST architectural
Context & Conclusion
Multi-tenant vs Single SAAS
10. 10
Introduction
Software as a Service
Service Oriented Architectures
REST architectural
Context & Conclusion
SOA is a set of principals and practices for modeling
enterprise business functions as services or micro services
which has following attributes.
• Standardized
• Loosely coupled
• Reusable
• Composable
• Stateless
• Abstract
11. 11
Introduction
Software as a Service
Service Oriented Architectures
REST architectural
Context & Conclusion
The essence of a SOA lies in Independent services interconnected by messages
12. 12
Introduction
Software as a Service
Service Oriented Architectures
REST architectural
Context & Conclusion
• Improved business agility
• Reduce IT complexity and rigidity
• Reduce costs / lead times / risk
• Incremental implementation
• New opportunities to deliver value
Advantages of SOA
13. 13
Introduction
Software as a Service
Service Oriented Architectures
REST architectural
Context & Conclusion
SOA Architecture
14. 14
Introduction
Software as a Service
Service Oriented Architectures
REST architectural
Context & Conclusion
Fondamental Constructs of SOA
Increasing Levels of Abstraction
16. 16
Introduction
Software as a Service
Service Oriented Architectures
REST architectural
Context & Conclusion
REST is intended to evoke an image of how a well-designed
Web application behaves: a network of web pages where
the user progresses through an application by selecting
links, resulting in the next page being transferred to the
user and rendered for use.
17. 17
Introduction
Software as a Service
Service Oriented Architectures
REST architectural
Context & Conclusion
REST Architectural style
• Client-server, stateless, cache
• HTTP is transport; HTTP methods (get, put, post…)
are the only commands
• URI names are a resource
• Client has resource so has enough info to request
modification of the resource on server
• A cookie can encode part of transferred state
18. 18
Introduction
Software as a Service
Service Oriented Architectures
REST architectural
Context & Conclusion
REST with HTTP examples
HTTP PUT HTTP POST HTTP GET HTTP DELETE
Collection URI, such as http://example.com/customers/3/orders
Replace the entire
collection with
another collection
Create a new entry in
the collection. The ID
created is usually
included as part of the
data returned by this
operation.
List the members of
the collection,
complete with their
member URIs for
further navigation
Delete the entire
collection
20. Introduction
Software as a Service
Service Oriented Architectures
REST architectural
Context & Conclusion
Current architecture
Solutions
Technologies
Results
20
21. Solution 1
21
Solution 2
Group all generic and reusable
modules into a platform.
Develop a SOA platform that
exposes a RESTful API
Introduction
Software as a Service
Service Oriented Architectures
REST architectural
Context & Conclusion
Current architecture
Solutions
Technologies
Results
22. 22
Introduction
Software as a Service
Service Oriented Architectures
REST architectural
Context & Conclusion
Current architecture
Solutions
Technologies
Results
Solution 1
23. 23
Introduction
Software as a Service
Service Oriented Architectures
REST architectural
Context & Conclusion
Current architecture
Solutions
Technologies
Results
Solution 2
24. 24
Introduction
Software as a Service
Service Oriented Architectures
REST architectural
Context & Conclusion
Current architecture
Solutions
Technologies
Results
Balsamiq Mockups Enterprise Architect Trello
25. 25
Introduction
Software as a Service
Service Oriented Architectures
REST architectural
Context & Conclusion
Current architecture
Solutions
Technologies
Results
26. 26
Introduction
Software as a Service
Service Oriented Architectures
REST architectural
Context & Conclusion
Current architecture
Solutions
Technologies
Results
27. 27
Introduction
Software as a Service
Service Oriented Architectures
REST architectural
Context & Conclusion
Current architecture
Solutions
Technologies
Results
28. 28
Introduction
Software as a Service
Service Oriented Architectures
REST architectural
Context & Conclusion
Current architecture
Solutions
Technologies
Results
29. 29
Introduction
Software as a Service
Service Oriented Architectures
REST architectural
Context & Conclusion
Current architecture
Solutions
Technologies
Results
30. 30
Introduction
Software as a Service
Service Oriented Architectures
REST architectural
Context & Conclusion
Current architecture
Solutions
Technologies
Results
31. 31
Introduction
Software as a Service
Service Oriented Architectures
REST architectural
Context & Conclusion
Current architecture
Solutions
Technologies
Results
Monsieur le président, honorable jury, j’ai l’honneur d’être devant vous aujourd’hui et soumettre à votre appréciation le résultat de mon projet de fin d’études effectué au sein de MIT , intitulé «Etude et développement d’une plateforme de gestion d'entreprise SAAS basée sur SOA
». Le projet a été supervisé par M, RACHAD Taoufik (côté ENSIAS) et par M. Salim ELBOUANANI ( cote MIT ) et sera jugé par Mr X (président du jury) et par Y examinateur du rapport.
La société MIT a développé plusieurs applications SaaS (Software as a Service) basées principalement sur le Framework Symfony, et avec le temps et avec la multitude des projets développés, ils ont constaté que la plupart de ces projets contiennent des modules communs qui offrent les mêmes fonctionnalités, et qui prennent énormément du temps à redévelopper. Ce problème de redondance des modules a engendré une perte du temps, et des ressources, sachant que la société MIT connait un manque de la main d’œuvre (moyenne de de quatre développeurs).
Parmi ces modules répétitifs on trouve :
La société MIT a développé plusieurs applications SaaS (Software as a Service) basées principalement sur le Framework Symfony, et avec le temps et avec la multitude des projets développés, ils ont constaté que la plupart de ces projets contiennent des modules communs qui offrent les mêmes fonctionnalités, et qui prennent énormément du temps à redévelopper. Ce problème de redondance des modules a engendré une perte du temps, et des ressources, sachant que la société MIT connait un manque de la main d’œuvre (moyenne de de quatre développeurs).
Parmi ces modules répétitifs on trouve :
La société MIT a développé plusieurs applications SaaS (Software as a Service) basées principalement sur le Framework Symfony, et avec le temps et avec la multitude des projets développés, ils ont constaté que la plupart de ces projets contiennent des modules communs qui offrent les mêmes fonctionnalités, et qui prennent énormément du temps à redévelopper. Ce problème de redondance des modules a engendré une perte du temps, et des ressources, sachant que la société MIT connait un manque de la main d’œuvre (moyenne de de quatre développeurs).
Parmi ces modules répétitifs on trouve :
La société MIT a développé plusieurs applications SaaS (Software as a Service) basées principalement sur le Framework Symfony, et avec le temps et avec la multitude des projets développés, ils ont constaté que la plupart de ces projets contiennent des modules communs qui offrent les mêmes fonctionnalités, et qui prennent énormément du temps à redévelopper. Ce problème de redondance des modules a engendré une perte du temps, et des ressources, sachant que la société MIT connait un manque de la main d’œuvre (moyenne de de quatre développeurs).
Parmi ces modules répétitifs on trouve :
La société MIT a développé plusieurs applications SaaS (Software as a Service) basées principalement sur le Framework Symfony, et avec le temps et avec la multitude des projets développés, ils ont constaté que la plupart de ces projets contiennent des modules communs qui offrent les mêmes fonctionnalités, et qui prennent énormément du temps à redévelopper. Ce problème de redondance des modules a engendré une perte du temps, et des ressources, sachant que la société MIT connait un manque de la main d’œuvre (moyenne de de quatre développeurs).
Parmi ces modules répétitifs on trouve :
La société MIT a développé plusieurs applications SaaS (Software as a Service) basées principalement sur le Framework Symfony, et avec le temps et avec la multitude des projets développés, ils ont constaté que la plupart de ces projets contiennent des modules communs qui offrent les mêmes fonctionnalités, et qui prennent énormément du temps à redévelopper. Ce problème de redondance des modules a engendré une perte du temps, et des ressources, sachant que la société MIT connait un manque de la main d’œuvre (moyenne de de quatre développeurs).
Parmi ces modules répétitifs on trouve :
La société MIT a développé plusieurs applications SaaS (Software as a Service) basées principalement sur le Framework Symfony, et avec le temps et avec la multitude des projets développés, ils ont constaté que la plupart de ces projets contiennent des modules communs qui offrent les mêmes fonctionnalités, et qui prennent énormément du temps à redévelopper. Ce problème de redondance des modules a engendré une perte du temps, et des ressources, sachant que la société MIT connait un manque de la main d’œuvre (moyenne de de quatre développeurs).
Parmi ces modules répétitifs on trouve :
La société MIT a développé plusieurs applications SaaS (Software as a Service) basées principalement sur le Framework Symfony, et avec le temps et avec la multitude des projets développés, ils ont constaté que la plupart de ces projets contiennent des modules communs qui offrent les mêmes fonctionnalités, et qui prennent énormément du temps à redévelopper. Ce problème de redondance des modules a engendré une perte du temps, et des ressources, sachant que la société MIT connait un manque de la main d’œuvre (moyenne de de quatre développeurs).
Parmi ces modules répétitifs on trouve :
La société MIT a développé plusieurs applications SaaS (Software as a Service) basées principalement sur le Framework Symfony, et avec le temps et avec la multitude des projets développés, ils ont constaté que la plupart de ces projets contiennent des modules communs qui offrent les mêmes fonctionnalités, et qui prennent énormément du temps à redévelopper. Ce problème de redondance des modules a engendré une perte du temps, et des ressources, sachant que la société MIT connait un manque de la main d’œuvre (moyenne de de quatre développeurs).
Parmi ces modules répétitifs on trouve :
La société MIT a développé plusieurs applications SaaS (Software as a Service) basées principalement sur le Framework Symfony, et avec le temps et avec la multitude des projets développés, ils ont constaté que la plupart de ces projets contiennent des modules communs qui offrent les mêmes fonctionnalités, et qui prennent énormément du temps à redévelopper. Ce problème de redondance des modules a engendré une perte du temps, et des ressources, sachant que la société MIT connait un manque de la main d’œuvre (moyenne de de quatre développeurs).
Parmi ces modules répétitifs on trouve :
La société MIT a développé plusieurs applications SaaS (Software as a Service) basées principalement sur le Framework Symfony, et avec le temps et avec la multitude des projets développés, ils ont constaté que la plupart de ces projets contiennent des modules communs qui offrent les mêmes fonctionnalités, et qui prennent énormément du temps à redévelopper. Ce problème de redondance des modules a engendré une perte du temps, et des ressources, sachant que la société MIT connait un manque de la main d’œuvre (moyenne de de quatre développeurs).
Parmi ces modules répétitifs on trouve :
à titre d’exemple trois projets SaaS que MIT a déjà développé qui sont des applications SaaS, parmi leurs modules, on trouve six qui sont similaires et qui sont redéveloppés trois fois. De plus, chacun de ces projets a sa propre BD isolée des autres, et une organisation peut s’abonner dans les 3 applications, ce qui est un travail de plus à l’administrateur pour la dupliquer dans les trois bases de données, ainsi qu’il doit accéder à l’administration de chaque projet pour gérer les abonnés et générer leurs factures.
Modules génériques
Remédier aux probleme de la duplication des données => BD partagée
Les incovénients : intégrer les modules, base de donnée partagée