• No results found

In this thesis the concept was to make a study of the architecture for a new web-based software system using a commercial ERP system.

First I’ve made a study of the different cloud systems. Each of these cloud systems have their pros and cons. But for this system there are two possibilities, using either a hybrid cloud. With a hybrid cloud they can keep their data private, and they have the advantage of a public cloud that is the expansion of the servers. The other possibility is that they still use a private cloud, so everything is managed by the administrators. The downside with private cloud is that the cost of expansion is bigger than with a public cloud.

Then I studied the architecture style, REST and its constraints. When making an API with the use of a REST architecture style, it’s important that all constraints are fulfilled.

Otherwise the API can’t be called a REST-ful API.

The purpose of this thesis was to make an API that makes it possible to change the database without too much modification on the client side. The API that was build made an extra layer between the client and the server. So now it’s possible to change the database from e.g. MySQL to Oracle without much problems.

The architecture style REST is a very complex concept, this concept is not easy to apply in an API. But once the REST architecture is fully understood it’s a powerful concept.

6.1 Future work

To make an API REST-ful is not an easy task, but now the foundation of a REST-ful API is made. Regarding the thesis and the API, it’s possible to make the API more REST-ful. Later on there will be more frameworks that support REST, so then it can be made with a MVC framework which makes the work of the programmer easier.

Bibliography

Abeysinghe, S. (2008). RESTful PHP Web services. Birmingham: Packt Publishing Ltd.

Allamaraju, S. (2010). RESTful Web Services Cookbook. O’Reilly Media, Inc.

Anthony T. Velte, T. J. (2010). cloud computing a practical approach. MC Grawhi.

Beaver, S. (2013, April 9). How Do You Define a Hybrid Cloud? Retrieved May 26, 2013, from The Virtualization Practice:

http://www.virtualizationpractice.com/wp-content/uploads/2013/04/Hybrid-Cloud-Computing-Solution1.jpg

Bikeborg. (2013, May 23). File: Cloud_computing_layers. Retrieved May 25, 2013, from Wikipedia:

http://upload.wikimedia.org/wikipedia/commons/3/3c/Cloud_computing_layers.

png

Borko Furht, A. E. (2010). Handbook of cloud computing. Springer.

Bray, T. (2008, November 26). Extensible Markup Language (XML) 1.0 (Fifth Edition).

Retrieved May 27, 2013, from W3C: http://www.w3.org/TR/REC-xml/#sec-intro

Chng, P. (2009, May 5). Using cURL in PHP to access HTTPS (SSL/TLS) protected sites. Retrieved May 25, 2013, from unitstep:

http://unitstep.net/blog/2009/05/05/using-curl-in-php-to-access-https-ssltls-protected-sites/

cloudtweaks. (2012, April). Cloud Computing types of cloud and their relevance part 2.

Retrieved May 26, 2013, from Cloudtweaks:

http://www.cloudtweaks.com/2012/04/cloud-computing-types-of-cloud-and-their-relevance-part-2/

Data, R. (2013). XML Tutorial. Retrieved May 27, 2013, from w3schools:

http://www.w3schools.com/xml/

doebertin, j. (2011, March 9). oAuth mit XAMPP unter Windows nutzen. Retrieved May 5, 2013, from jonas-doebertin: http://www.jonas-doebertin.de/2011/03/oauth-mit-xampp-unter-windows-nutzen/

Fielding. (1999, June). 14 Header Field Definitions. Retrieved May 23, 2013, from W3:

http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.1

Fielding, e. a. (1999). Status Code Definitions. Retrieved May 25, 2013, from W3 : http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

Fielding, R. (2008, October 20). REST APIs must be hypertext driven. Retrieved May 27, 2013, from Untangled: http://roy.gbiv.com/untangled/2008/rest-apis-must-be-hypertext-driven

Fielding, R. T. (2000). Architectural Styles and the Design of Network-based Software Architectures. UNIVERSITY OF CALIFORNIA.

Fowler, M. (2010, March 18). Richardson Maturity Model. Retrieved May 28, 2013, from MartinFowler:

http://martinfowler.com/articles/richardsonMaturityModel.html

Gazit, I. (2012). Authorization Code Grant. Retrieved May 27, 2013, from oauthlib:

https://oauthlib.readthedocs.org/en/latest/authcode.html

Gazit, I. (2012). Client Credentials Grant. Retrieved May 27, 2013, from oauthlib:

https://oauthlib.readthedocs.org/en/latest/credentials.html

Gazit, I. (2012). Implicit Grant. Retrieved May 27, 2013, from oauthlib:

https://oauthlib.readthedocs.org/en/latest/implicit.html

Gazit, I. (2012). Resource Owner Password Credentials Grant. Retrieved May 27, 2013, from oauthlib: https://oauthlib.readthedocs.org/en/latest/password.html Goodrich, G. (2012). php-logo. Retrieved May 25, 2013, from Roby Source:

http://cdn.rubysource.com/files/2012/09/php-logo.jpeg

Group, P. (2013, May 24). cURL Functions. Retrieved May 26, 2013, from Php:

http://www.php.net/manual/en/ref.curl.php

hansamann. (2012, July). OAuth: the Client Credentials Flow. Retrieved May 27, 2013, from techblog: http://techblog.hybris.com/wp-content/uploads/2012/07/Screen-Shot-2012-07-09-at-11.25.56-AM.png

hansamann. (2012, June 5). OAuth2: the Implicit Flow, aka as the Client-Side Flow.

Retrieved May 27, 2013, from techblog: http://techblog.hybris.com/wp-content/uploads/2012/06/oauth2_implicit_flow.png

hansamann. (2012, June 5). OAuth2: The Resource Owner Password Flow. Retrieved May 27, 2013, from techblog:

http://techblog.hybris.com/wp-content/uploads/2012/06/oauth2_resource_owner_password_flow.png

Hardt. (2012, October). The OAuth 2.0 Authorization Framework. Retrieved May 27, 2013, from IETF: http://tools.ietf.org/html/rfc6749#section-1

IBM. (2005). Secure sockets layer overview. Retrieved May 23, 2013, from IBM:

http://pic.dhe.ibm.com/infocenter/tivihelp/v2r1/index.jsp?topic=%2Fcom.ibm.it ame2.doc_5.1%2Fss7aumst18.htm

IBM. (2012, November 1). An overview of the SSL handshake. Retrieved May 20, 2013, from IBM:

http://publib.boulder.ibm.com/infocenter/wmqv6/v6r0/topic/com.ibm.mq.csqzas .doc/sy10660a.gif

IdentityManagement. (2012, May 15). OAuth2 into. Retrieved May 27, 2013, from IdentityManagement:

http://www.stallies.net/wp-content/uploads/2012/06/oauth2_abstract.png

Integration, E. C. (2012). History of Cloud Computing. Retrieved Maart 10, 2013, from EzeCastle Integration: http://www.eci.com/cloudforum/cloud-computing-history.html

Jansen, G. (2011). Resources. Retrieved May 5, 2013, from restful api design:

https://restful-api-design.readthedocs.org/en/latest/resources.html#representations

K.roshan. (2011, August 28). What is Https and SSL? and how it works? Explained in Simple English. Retrieved May 20, 2013, from Techieinspire:

http://www.techieinspire.com/https-and-ssl-and-how-it-works/

Kepes, B. (2011). Understanding the Cloud Computing Stack. Rackspace.

KUMARI, S. R. (2005). CLOUD COMPUTING: AN OVERVIEW. JATIT.

Llc., 1. (2012, February 9). Who is responsible for security in the Cloud? Retrieved May 5, 2013, from 10Jumps: http://10jumps.com/blog/who-responsible-security-cloud

Luis M. Vaquero, L. R.-M. (2009). A Break in the Clouds: Towards a Cloud Definition.

ACM SIGCOMM Computer Communication Review.

Massé, M. (2012). REST API Design Rulebook. United States of America: O’Reilly Media, Inc.

Meijer, G. (2012, October 3). How to Build a Hybrid Cloud. Retrieved March 23, 2013, from CloudProviderUSA: http://www.cloudproviderusa.com/how-build-hybrid-cloud/

Pastor, P. (2010, May 24). MVC for Noobs. Retrieved May 27, 2013, from Tutsplus:

http://net.tutsplus.com/tutorials/other/mvc-for-noobs/

Pavan. (2009, February 14). opencodez. Retrieved May 26, 2013, from Create SSL Certificate and install in Xampp: http://www.opencodez.com/apache/ssl-certificate-and-install-in-xampp.htm

PHP info. (n.d.). Retrieved May 25, 2013, from rubysource:

http://cdn.rubysource.com/files/2012/09/php-logo-300x210.jpeg

Pierobon, J. M. (2011, December). SSL Handshake Steps In Detail. Retrieved May 23, 2013, from pierobon: http://www.pierobon.org/ssl/ch2/detail.htm

Pomares, W. M. (2012, April 4). Evaluating REST Frameworks Part 1: A Maturity Model. Retrieved April 8, 2013, from DeveloperFusion:

http://www.developerfusion.com/article/141194/evaluating-rest-frameworks-part-1-a-maturity-model/

Poretsky, S. (2013). SSL Limitations. Retrieved May 23, 2013, from Opposing views:

http://science.opposingviews.com/ssl-limitations-2432.html

Prakash, N. (2012, October 26). Did You Know Cloud Computing Has Been Around Since the '50s? Retrieved May 26, 2013, from mashable:

http://mashable.com/2012/10/26/cloud-history/

Reese, G. (2009). Cloud Application Architectures Building Applications and infrastructure in the cloud. O'Reilly.

Rhoton, J. (2010). Cloud computing explained: Implementation Handbook for Enterprises. Rp.

Sameer Shelke, A. (2011, May 19). Microsoft Windows Azure – Secure Development.

Retrieved May 26, 2013, from CIO research Center:

http://cioresearchcenter.com/wordpress/wp-content/uploads/2011/05/sameer2.jpg

Sandoval, J. (2009). RESTful Java Web Services. Packt Publishing.

sourya. (2011, February 9). A History of Cloud Computing. Retrieved May 26, 2013, from Cloud tweaks: http://www.cloudtweaks.com/2011/02/a-history-of-cloud-computing/

Stenberg, D. (2013, May 25). Curl.1 the man page. Retrieved May 25, 2013, from Curl:

http://curl.haxx.se/docs/manpage.html

Syed A. Ahson, M. I. (2010). Cloud Computing and Software Services Theory and Techniques. CRC press.

TAMK. (2008). Kykylaakso. Retrieved March 20, 2013, from Kykylaakso:

http://kykylaakso.fi/palvelut/Index.php

Torben Wilson, Z. G. (2001). PHP Functions Essential Reference. Sams.

Weekly, C. (2009, March). A history of cloud computing. Retrieved April 3, 2013, from Computer Weekly: http://www.computerweekly.com/feature/A-history-of-cloud-computing

Wikipedia. (2013, May 20). HTTP Secure. Retrieved May 23, 2013, from wikipedia:

http://en.wikipedia.org/wiki/HTTP_Secure

Wikipedia. (2013, May 18). Uniform resource locator. Retrieved May 24, 2013, from Wikipedia: http://en.wikipedia.org/wiki/Uniform_resource_locator

Related documents