520 likes | 629 Views
Apple WebObjects: Overview and Applications. S. Singh / ECE / UW ssingh@swen.uwaterloo.ca. Overview of Presentation. Brief history of web-related technologies Concepts related to web development Intro to WebObjects concepts and structure Major features of WebObjects and Development
E N D
Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca
Overview of Presentation • Brief history of web-related technologies • Concepts related to web development • Intro to WebObjects concepts and structure • Major features of WebObjects and Development • Video of WebObjects in action on a simple project • Example applications developed in ECE and U. Mich • Contact Info for future co-development • Questions / Comments / Discussion
Evolution of Web Technologies • 4 different “ages” of Web development abstraction • The tools of each age had strengths and weakness • WebObjects is the culmination of tool evolution
Stone Age: Data Access and Interface embedded in Logic. • Issues with this approach: • Nonprogrammers can’t change a page’s look • One page equals one chunk of code... • ...Maintaining consistency of UI becomes tough • If data source changes, must update code… • SQL is error prone and tedious with databases
Bronze Age: Data Access embedded in Logic embedded in Interface
Bronze Age: Data Access embedded in Logic embedded in Interface • Instead of putting HTML into code, it puts code into HTML with custom (non HTML-standard) tags • This allows non-programmers to edit HTML pages • But, does not address the Stone Age’s other two issues: Logic sharing and data source fragility
Industrial Age: Data Access embedded in Logic separated from Interface
Industrial Age: Data Access embedded in Logic separated from Interface • Move application Logic out of Interface: separation • Subsequent interaction thru a well-defined channel simplifies Logic & Interface maintenance • Each benefits from the independence: Logic becomes clearer; both increase their reusability. • Result is: server-side application server but still dependent on data-source specific code
Information Age: Data Access separated from Logic separated from Interface
Information Age: Data Access separated from Logic separated from Interface • Separating Data Access from Logic solves the data source fragility issue because it leads to... • A natural and efficient separation of talents: Page/UI Designers, Programmers, & DB admins • WebObjects is the most mature and interoperable of the 3 implementations of the info age paradigm
Maturing Web Technologies… its time for a “Web Application” • A Web Application is a web-interface version of a traditional application, BUT there are some key differences from a host-based GUI application • Apple Music Store “web app” != Pro/Eng “app”
(continued)Maturing Web Technologies…its time for a “Web Application” • HTML is “stateless” ie. it does not have any kind of “memory” per se… BUT WebObjects fixes this with session objects and persistent storage • Web Applications typically do not have “real-time” interactivity with the user – information is sent the web server from HTML forms, processed, and a new page served in response … repeatedly.
WebObjects User Interaction: “Request-Response Loop” • Based on the notion of a web application being something that uses a web server to serve pages to a user, get information back, do something with it, and then serve more pages until the session is completed. • WebObjects is built around the general idea of a “request-response loop” as a key principle so any web browser can function as a web application interface
The Main Ingredients of WebObjects on the Server Side • WebObjects can be broken down into three elements, starting with sets of Frameworks • Frameworks are collections of very powerful, high-level interrelated classes that together can already implement vanilla WebObjects applications, saving YOU valuable time and increasing efficiency • Frameworks are “class libraries turned upside down” where your application is controlled by the framework, instead of you creating objects. • Your application customizes and extends these related frameworks as needed, so you do much less coding than you would with general class libs.
The Main Ingredients of WebObjects on the Server Side • A set of development tools – Apple’s & Eclipse too • A set of deployment tools – provides scalability
The Four Frameworks • The heart of WebObjects are its frameworks. • Four major frameworks, from the bottom-up: • JavaFoundation – fundamental data structures • Enterprise Objects Framework - storing and restoring objects to a data store usually a DB • WebObjects Framework – app UI & state mgmt. & to create reusable components in web applications • DirectToWeb Framework – creates db/web apps
Enterprise Objects Framework(EOF) • The Crown Jewel of WebObjects! • EOF is designed to easily store/restore objects on demand. Best of breed technology for this task! • Data source independence! Objects don’t care how they are stored, in file / DB; app code stays same • EOF takes care of all the details of Object-Relational mapping – NO SQL to deal with • EOF can reverse engineer an existing database to provide a table-oriented view from which to construct objects
WebObjects Framework • The WebObjects Framework attends to the practical aspects, relating to application logic etc, and offers 3 major conveniences: • Automatic State Management – Recall that… HTML is stateless, but WebObjects is stateful. • State management allows WebObjects to serve multiple users with multiple simultaneous Session Objects each distinct from each other.
(continued) WebObjects Framework • Automatic Web Form Management - Using WebObjects Builder, bind your Java class’s variables directly to HTML “FORM” input elements • When your page is invoked, the users input has been magically populated into your page’s instance variables.
How Web Applications are made with Apple WebObjects • WebObjects applications generate dynamic HTML-based webpages accessed through a web browser in response to user input, some might be stored • WebObjects applications are object-oriented, written in Java & leverage WebObjects frameworks • Your application generates webpages by creating instances of objects called web components, typically built with WebObjects Builder (more on that soon)
WebObjects … Web Components… WOComponent • A web component is a combination of a Java subclass of WOComponent and an HTML template. • WOComponent is a class in the WebObjects framework and provides base functionality that subclasses then build upon to do neat things… • Web components can contain any standard HTML elements and components including Flash animations, QuickTime movies, JavaScript programs, and Java applets. Web components also support Cascading Style Sheets (CSS).
Component Based Development with WebObjects • WebObjects Builder is used to build template web pages that contain WebObjects components that bind to your application and provide the information needed to generate a HTML page dynamically from the WOComponents and your application logic • Perhaps a video showing this would help?
Video: WebObjects Application Development in 15 minutes! • Video shows the creation of a very simple WebObjects blogging application • Note the interaction between the different development tools and the database design • Very little coding is required to implement this simple application due to the power of the frameworks • More complex applications are built using a similar methodology to this simple example
Video: WebObjects Application Development in 15 minutes! Movie steps through: • Creating the database • Modeling the data • Initializing the database • Creating a project • Defining the user interface • Binding the UI to Java code • Reading and writing to the database. • Queue video...
WebObjects Deployment(for system administrators) • woservices - small daemon starts wotaskd at system startup time and then continuously polls wotaskd, checking its responsiveness. If wotaskd becomes nonresponsive, woservices restarts it. • Wotaskd - responsible for keeping a list of running WebObjects processes. wotaskd starts and stops application processes, controls their environment, restarts crashed instances and provides a list of running processes for the web server adapter to pick from (for load balancing purposes).
WebObjects Deployment(for system administrators) • JavaMonitor - admin application that acts as a user interface to wotaskd; information about which applications are running, and statistical information.
ECE WebObjects Applications: A Quick Set of Examples • Total of 12 applications in use at this time, we will look briefly at 4 of them: • Work Reports Online • Survey Online • Course Book • ECE Inventory
Work Term Reports Online • Web-based entry and management of work term report marks for ECE Faculty and Staff markers • Administrative Interface for the Work Term Report Co-Ordinator to gather marking statistics automatically to ensure fair and consistent marking across all ECE report evaluators • Overrides available in the event of mistakes or special procedures • Faster, more efficient report management cycle.
ECE Survey Application • Web-based entry and management of ratings for Teaching Assistants, Lab Instructors and Faculty • Tightly coupled to ECE undergraduate courses • Handles many user types: student, TA, staff, prof • Displays information appropriate to each user • Can be expanded to many different types of surveys to gather information related to ECE program efficacy
ECE Course Book Application • Facilitates electronic submission of course files that is more efficient than e-mail with attachments • Originally written to meet the needs of one professor, now expanded in use for potentially all ECE undergrad courses where electronic submission is feasible and appropriate • Also supports student signup for time slots for specific lab stations at allowed times, to ensure maximum utilization of available lab resources
ECE Inventory / Loan Application • Helps to maintain ECE inventory of Fourth Year Design Project assets, available to students to implement their senior engineering projects. • It has allowed the department to reduce the year to year capital costs of the Fourth Year Project phase of the ECE undergraduate program by allowing students to see what is already available, and to re-use equipment purchased previously.
Think Big! WebObjects Big! • WebObjects has the enterprise scalability and rich feature set to support the largest high volume sites such as BBC News • What kinds of applications can be designed with WebObjects that would benefit ALL of UW? • Something to think about… • But for now … take a look at GVC SiteMaker, an academic web publishing application built on WebObjects.
GVC SiteMaker - An Open Source Academic Web Publishing Solution from U. Michigan • Built by a team of Apple iServices, University of Michigan, & Global Village Consulting Inc.
GVC SiteMaker … A Closer Look for Nonspecialist Users • Designed to remove the difficulties faced trying to put a website into production • Easier than: FrontPage, Dreamweaver or GoLive • Requires no special training or experience with HTML or web-publishing tools. • Simple step by step instructions to choose a website style, type in text and upload images for content, create navigational structure, create password protected pages and files, and of course, publish the website on the World-Wide-Web.
GVC SiteMaker … A Closer Look for IT Support Personnel • Various System Administration, access, sharing and security features to help manage many individual websites… • See more at www.gvcsitemaker.com and http://sourceforge.net/projects/gvcsitemaker
Invitation to Participate! • UW has a history of excellence in software development: • QNX real-time OS • CFX TascFLOW – computational fluid dynamics • Maple – computer algebra / symbolic computation • RAPTOR – in vivo – protein structure prediction • Can WebObjects be the foundation for the next major UW-based software project? … something for the entire campus or beyond?
(continued)Invitation to Participate! • Software Development requires much more than software engineers! Serious Project Work needs: • User Requirements and Performance Specifications • User Interface Design and Usability Testing • Online Documentation and Training Manuals • Systems Documentation for configuration • Beta Testers and Quality Assurance Testers • System Administrators for OS and web server • DB/Oracle Admins: schema design & server tuning • Project and Software Lifecycle Management
Let Us Know if you’re Interested! • Contact any of the following people if you want to know more about WebObjects or if you have a project idea for the campus and want to pursue it: • WebObjects Applications Engineer: • Ricardo Rolon - rrolon@ecemail.uwaterloo.ca • and please CC ECE Lab Director: • Bill Ott - wmott@ecemail.uwaterloo.ca • Send Informal questions / comments: • Sanjay Singh - ssingh@swen.uwaterloo.ca
Acknowledgements • Thanks to these people for their help: • Bill Ott - ECE Lab Director / WebObjects advocate • Ricardo Rolon - WebObjects Architect / Developer • Irene Huang - Software Developer / Tester • Ash Mishra - WebObjects Consultant, formerly with ECE and originator of WebObjects within ECE