170 likes | 308 Views
Alberto Pareja-Lecaros. A Distributive Server. Introduction. Uses of distributive computing - High powered applications - Ever-expanding server so there’s never a limit - Speed RMI, JAAS, Kerberos will be used exclusively with JAVA. JAAS (JAVA Authentication and Authorization Service).
E N D
Alberto Pareja-Lecaros A Distributive Server
Introduction • Uses of distributive computing -High powered applications - Ever-expanding server so there’s never a limit - Speed • RMI, JAAS, Kerberos will be used exclusively with JAVA
Authentication • Check client exists • Make sure client has sufficient access (passwords, etc.)
Authorization • Determine credentials of authenticated client (permissions, etc.) • Allow client access only to what it has permission to access • Sample shows allowing to find java.home property, root.home property, and allowing to determine whether a file exists in the directory
Why useful? • JAAS uses security protocol Kerberos • Allows for different users with different access (admins, regular users) • Allows the banning of users
What’s RMI? • Allows remote execution of code • Provides security of code • Provides for permissions needed to access the code
Why Useful? • Allows clients to become servers by executing remote server code (essential for distributive computing) • Allows execution to be done in a secure environment • Integrated into JAVA so its easy to use
RMI vs Serializing over the stream • RMI is much faster • No huge chunks of data are being sent over the network • No copies of objects, objects are accessed remotely • Serializing has its problems
What’s Kerberos? • Quite simply, it’s a security protocol • Allows for protection of clients/servers • Keeps sensitive information encrypted and never stored/transmitted
Why useful? • Helps prevent hacking into the client/server • Allows for safe connections using JAAS • Provides safety when allowing clients to access remote code with RMI
Results so far • One connection to server per client • Set permissions of clients via a permission file • Never send passwords over a stream (Let Kerberos encrypt it) • Main server holds all information and relays clients to their designated server (determined by the main server) • Clients only connect to the main server directly
Current design • Game Client connects to a Game Server • A Main Server keeps track of all Game Servers in a Server Map. • Game Servers listen for Game Clients and connects them • Game Clients send objects called Messages which tells the Server what to execute • The Server sends back any execution results
Messages • Objects containing different types of data for the server to interpret • Server takes these messages and executes them depending on the message type
Darkstar • A new client/server library released by Sun • Connections handled transparently • Different levels of security (authorization, authentication, etc.) • Fast, reliable way of handling client server applications • Extremely new library (3/28/06) and will be implemented to speed up design