SaaS/Mobile Development Solutions
Magicsoft’s dedicated team of developers introduces Magicsoft’s new framework designed for its own projects and products. The new framework boasts flexibility; allowing third party who are interested in their own development to use our framework and apply it into theirs.
The framework runs under our Linux server and uses an asynchronous approach to deliver static content with efficient use of system resource. We at Magicsoft Asia Systems offer the framework for future scalability, good performance and value for money.
Our Technology:
Environment:
- Centos OR Arch Linux (http://archlinux.org)
Language & Tools:
- Python
- Requirejs
- Jquery (http://jquery.com/)
- Bootstrap (http://twitter.github.io/bootstrap/)
- Backbonejs (http://backbonejs.org/)
- Underscorejs (http://underscorejs.org/)
- PIL – Python Image Library (http://www.pythonware.com/products/pil/orhttps://pypi.python.org/pypi/Pillow/)
- PyCharm (http://www.jetbrains.com/pycharm/)
Framework:
- CSS3 (https://en.wikipedia.org/wiki/Cascading_Style_Sheets)
- Tornadoweb (http://tornadoweb.org/)
Database&Tools:
- Mongodb (mongodb.org)
- Redis
- Mongokit (http://namlook.github.io/mongokit/)
Version Control:
- GIT (http://git-scm.com)
Administration Tool:
- Fabric-deployment (http://docs.fabfile.org/en/1.6/)
Server:
- Nginx reverse proxy server (http://nginx.org/en/)
Concept:
- Single Page Application concepts and implementation (http://en.wikipedia.org/wiki/Single-page_application)
- RESTful service (https://en.wikipedia.org/wiki/Representational_state_transfer)
- Websockets (http://en.wikipedia.org/wiki/WebSocket)
- HTML5
- RESTful service concept and implementation
Report & tools:
- Jasperreports (http://community.jaspersoft.com/project/jasperreports-library)
- iReport designer
Diagram of MagicSoft Framework :
Run under Linux server and uses an asynchronous approach to deliver static content with efficient use of system resource, we offer the framework for future Scalability, reliability, maintainability and security.
We developed using Tornado with Python Programming Language because Tornado is distinct from most mainstream web server framework because it is non-blocking and reasonably fast. It can handle thousands of simultaneous standing connections, which means it is ideal for real-time web services.
MongoDB: Open source document-oriented database system. High performance & schema free.
Memcached: Distributed memory caching system, which is responsible for caching data in RAM to reduce read operation to external system (usually database).
Tornado: Scalable non blocking web server which can handle simultaneous concurrent connection. In Magicsoft Framework, it acts as backend web server.
Nginx: Reverse proxy server (front end server) which can distribute load from incoming requests to several backend servers. Nginx can handle high concurrency with low memory usage.
CDN: System containing copies of data, placed at various places in network to maximize the bandwidth for access to the data from clients through the network.
REST API: An approach for distributed architecture, which defines how server resources are represented.
Website: A set of related web pages containing resources, incl. text, video, music, audio, images etc.A website is hosted on at least one web server, accessible via a network such as the Internet or a private local area network through an Internet address known as a Uniform Resource Locator.
Sharding: A horizontal partition of database among multiple machines in order preserving manner.
Mongod: Primary MongoDb worker process that runs on an individual server.
SPA: Single-page application also known as single-page interface (SPI), is a web application or web site that fits on a single web page with the goal of providing a more fluid user experience akin to a desktop application.
Push Notification: Push, or server push, describes a style of Internet-based communication where the request for a given transaction is initiated by the publisher or central server. It is contrasted with pull, where the request for the transmission of information is initiated by the receiver or client.
We tried to learn from successfully of real-world business application around the world. Take a small thing from there; we hope that the approach can get much scalability, reliability, maintainability and security. YouTube.com and Google as our inspired to use Go as our Programming Language for various of projects.