100 likes | 267 Views
Robocode as a service. Project Milestone. Provide Access Control Mechanisms to access other robots across domains Deploy Robocode as a service on a cloud platform (Google App Engine) Plagiarism detection Provide an option to run battle between robots Intuitive user interface to view battle.
E N D
Project Milestone • Provide Access Control Mechanisms to access other robots across domains • Deploy Robocode as a service on a cloud platform (Google App Engine) • Plagiarism detection • Provide an option to run battle between robots • Intuitive user interface to view battle
Architecture Web App Framework Request Handler Browser Request Datastore API Response Services URL Fetch App Engine Datastore Mail Google Accounts
Cloud Storage • Using GAE’s BLOB Store and Datastore to store application data • BLOB store is used to store the robots • Each robot has a unique BLOB key • Associating the BLOB key and username obtained from the user service API as an entity in the datastore • Datastore is used to store all other data • JDO is used for querying and storing data into the datastore
GAE API’s • com.google.appengine.api.datastore.* • To access the datastore, create entities, key value for the entities etc. • com.google.appengine.api.users.* • User authentication service. • Retrieve their email address, and check if they are an administrator for this application. • com.google.appengine.api.blobstore.* • Provides management and persistent storage of large, immutable byte arrays. • Allows applications to accept, save, and later serve files of any size.
User Interface • JSP, JavaScript, jQuery are used in user interface development • Phases in user interface: • Gmail Authentication • Registration • Admin Control Panel • Robocode Editor • Accessing other robots across domains
Role-based Access Control • Introduces the concept of a role and a permission • Permissions are assigned to roles • Users are assigned to role • RBAC is an access control mechanism which: • Describes complex access control policies. • Provides data abstraction • The extent to which abstraction is supported will be determined by the implementation details
Basic Roles • Super Admin - Creates domain, defines roles within a domain, and maps roles across domains Eg: A sample role Hierarchy • Domain Admin – Top in the role hierarchy for a particular domain. • Developer – Restricted from viewing others code, Create robots. • Viewer – Can only select other robots and play. No access to the code. • Note: User can only be in one domain and can have only one role.
Super Admin Create Domain Super Admin Define Role Hierarchy Cross Domain Role Mapping A Sample Role Hierarchy Administrator Developer Developer Viewer Viewer
Privileges Granted • No Read – Cannot access any code • Read Only – Will be able to view the code • Read/Update – Will be able to make changes to others code. • Read/Update/Delete – Can also delete apart from modifications. Intra-Domain: When a developer creates a robot, he/she can • set the above privileges to each and every role within the domain. • Modify the permission in the future. Inter-Domain: • Based on the mapping defined by super admin while creating the domain. Permissions can be updated only by super admin.