apple webobjects: overview and applications s. singh / ece / uw ssingh@swen.uwaterloo.ca
Post on 18-Dec-2015
215 Views
Preview:
TRANSCRIPT
Apple WebObjects: Overview and Applications
S. Singh / ECE / UWssingh@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.
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.
Request-Response Loop: The Cycle of Interaction
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
Overall View of the WebObjects Software Architecture
The Main Ingredients of WebObjects on the Server Side
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
A Birds Eye View of The WebObjects Frameworks
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)
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(hardware and software views)
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
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
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
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
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
Questions / Comments(time permitting)
Thank you for attending!
S.
top related