Sunday, July 28, 2013

I have a large CakePHP app and need to support iOS and Android

I have a large CakePHP app (well over 100K lines of php, many languages, over 2 million users) and I need to support iOS and Android clients. I would like to put all the data and business logic in a "back end" that is shared across all 3 clients. I know a major rewrite is needed and I am looking for recommendations on architecture. I am thinking of moving to a "Service Oriented Architecture", putting all the data and business logic in "backend services" with defined interfaces that can be used by the CakePHP, iOS and Android clients. 

Some considerations:
  1. Ease/Speed of adding new features across all clients is critical. I would like to add functionality to the backend and enable the clients all to use it with all the code in the backend being shared and all the code in the clients being specific to the needs of that client.
  2. I would like to use open-source components (not Cake components) where possible in the backend. They need to be production tested and currently supported by an active community. I would like to use standards-based interfaces and protocols where possible to make it easier to use open-source components. 
  3. I would like the interfaces to support multiple versions at the same time so I can upgrade components independently. 
  4. I would like to have a consistent security model shared across the interface.
Are there some 'recommended best practices' for this?
Are there some frameworks that will make this easier?

--
Like Us on FaceBook https://www.facebook.com/CakePHP
Find us on Twitter http://twitter.com/CakePHP
 
---
You received this message because you are subscribed to the Google Groups "CakePHP" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cake-php+unsubscribe@googlegroups.com.
To post to this group, send email to cake-php@googlegroups.com.
Visit this group at http://groups.google.com/group/cake-php.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

No comments: