200 likes | 311 Views
Client and Server Design. J2EE Steps In. What now?. At this point, you understand how to design servers and how to design clients But how do you put them together? Where do you draw the line? What goes in the client and what goes in the server? How many servers? How many forms of client?.
E N D
Client and Server Design J2EE Steps In
What now? • At this point, you understand how to design servers and how to design clients • But how do you put them together? • Where do you draw the line? • What goes in the client and what goes in the server? • How many servers? • How many forms of client?
Difficult Questions • Every imaginable design is used • Focus first on the most prevalent • The evolution was just that • Consider • distributed for redundancy and scalability • objects for reusability and adaptability • web to insulate from the platform (os/hardware)
Incremental • Incremental design/development is one of the tenets of design in a software system. • Using an environment which does as much for you as possible is a desirable situation (within the parameters of cost) • Buy components, assemble and integrate
Problems of Scaling an App Multiple Clients • communication overhead • delay in accessing servers • issues of priority and fairness • synchronization • running on different platforms • based on USER needs
Problems of Scaling an App (Multiple) Servers • need for independence from client • variety of client demands • scalability • transparency to client • hardware based on • performance • infrastructure needs
Problems of Scaling an App System needs • transaction service (commit/rollback) • security • load balancing • thread management • persistence • middleware • accounting and logging • migrating from legacy systems
Standard Components • User interface: GUI/WEB • Database/Persistence • AI • Communications • Multimedia
Standard Componentsand Middleware • Lots of examples • Databases • GUIs • Objects • Problem with all of these is that they are typically platform or vendor specific • An example follows
No Middleware OpenOracle() … OpenMySQL() … MySQL ORACLE Code must be changed to migrate to a new DB
OpenDB() Database Middleware Oracle Driver MySQL Driver OpenOracle() OpenMySQL() MySQL ORACLE Middleware
OpenDB() Microsoft -> ODBC SQL Driver Access Driver OpenSQL() OpenAccess() SQL Access Middleware w/ODBC
OpenDB() DBOpen() ODBC BDE Oracle Driver Paradox Driver BDE to ODBC Driver OpenOracle() OpenParadox() Paradox ORACLE Middleware BDE and ODBC NOT PERFECT!
How do we get here?STANDARDIZATION! • We got tired of being unproductive. • Companies realized losing a little flexibility could save lots of money • Organizations cooperated • They saw what standardization could do • OS, languages, GUIs, SQL • had the guts to open source
Standardization Explosion • Java is an attempt to standardize everything • language features • interface libs • guis • dbs • communication • application development • Microsoft is doing the same thing in its own way • Is this an oxymoron? Possibly. Each have an explosion of standardization. There are always competing standardization and degrees.
So what now? • You’re jumping in midstream so it’s hard to see. • Technologies have a way of overwhelming • Technologies have a way of emerging to the masses (programmers) if they succeed. • J2EE is a standardization of application development. • It’s not simple… but not too hard for you!
J2SE and J2EE Basic libraries for java development I/o GUIs applets etc Based on J2SE Can UTILIZE EJB Uses other technologies Defines a Specification Components are constrained to abide by interface specs if they play J2EE
Client Interface Our Main Focus Business Logic BackEnd From Roman
J2EE Technologies • EJB • RMI • JNDI • JDBC • JTS (Transactions) • servlets • JSP • JAAS (Authorization & Authentification)