Pareja-LecarosSlides06
Download
Report
Transcript Pareja-LecarosSlides06
A Distributive Server
Alberto Pareja-Lecaros
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)
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
RMI (Remote Method Invocation)
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
Kerberos
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