apple webobjects: overview and applications s. singh / ece / uw [email protected]
Post on 18-Dec-2015
217 views
TRANSCRIPT
![Page 2: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca](https://reader030.vdocuments.mx/reader030/viewer/2022032703/56649d255503460f949fb860/html5/thumbnails/2.jpg)
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
![Page 3: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca](https://reader030.vdocuments.mx/reader030/viewer/2022032703/56649d255503460f949fb860/html5/thumbnails/3.jpg)
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
![Page 4: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca](https://reader030.vdocuments.mx/reader030/viewer/2022032703/56649d255503460f949fb860/html5/thumbnails/4.jpg)
Stone Age: Data Access and Interface embedded in Logic.
![Page 5: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca](https://reader030.vdocuments.mx/reader030/viewer/2022032703/56649d255503460f949fb860/html5/thumbnails/5.jpg)
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
![Page 6: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca](https://reader030.vdocuments.mx/reader030/viewer/2022032703/56649d255503460f949fb860/html5/thumbnails/6.jpg)
Bronze Age: Data Access embedded in Logic embedded in Interface
![Page 7: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca](https://reader030.vdocuments.mx/reader030/viewer/2022032703/56649d255503460f949fb860/html5/thumbnails/7.jpg)
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
![Page 8: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca](https://reader030.vdocuments.mx/reader030/viewer/2022032703/56649d255503460f949fb860/html5/thumbnails/8.jpg)
Industrial Age: Data Access embedded in Logic separated from Interface
![Page 9: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca](https://reader030.vdocuments.mx/reader030/viewer/2022032703/56649d255503460f949fb860/html5/thumbnails/9.jpg)
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
![Page 10: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca](https://reader030.vdocuments.mx/reader030/viewer/2022032703/56649d255503460f949fb860/html5/thumbnails/10.jpg)
Information Age: Data Access separated from Logic separated from Interface
![Page 11: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca](https://reader030.vdocuments.mx/reader030/viewer/2022032703/56649d255503460f949fb860/html5/thumbnails/11.jpg)
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
![Page 12: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca](https://reader030.vdocuments.mx/reader030/viewer/2022032703/56649d255503460f949fb860/html5/thumbnails/12.jpg)
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”
![Page 13: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca](https://reader030.vdocuments.mx/reader030/viewer/2022032703/56649d255503460f949fb860/html5/thumbnails/13.jpg)
(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.
![Page 14: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca](https://reader030.vdocuments.mx/reader030/viewer/2022032703/56649d255503460f949fb860/html5/thumbnails/14.jpg)
Request-Response Loop: The Cycle of Interaction
![Page 15: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca](https://reader030.vdocuments.mx/reader030/viewer/2022032703/56649d255503460f949fb860/html5/thumbnails/15.jpg)
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
![Page 16: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca](https://reader030.vdocuments.mx/reader030/viewer/2022032703/56649d255503460f949fb860/html5/thumbnails/16.jpg)
Overall View of the WebObjects Software Architecture
![Page 17: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca](https://reader030.vdocuments.mx/reader030/viewer/2022032703/56649d255503460f949fb860/html5/thumbnails/17.jpg)
The Main Ingredients of WebObjects on the Server Side
![Page 18: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca](https://reader030.vdocuments.mx/reader030/viewer/2022032703/56649d255503460f949fb860/html5/thumbnails/18.jpg)
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.
![Page 19: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca](https://reader030.vdocuments.mx/reader030/viewer/2022032703/56649d255503460f949fb860/html5/thumbnails/19.jpg)
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
![Page 20: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca](https://reader030.vdocuments.mx/reader030/viewer/2022032703/56649d255503460f949fb860/html5/thumbnails/20.jpg)
A Birds Eye View of The WebObjects Frameworks
![Page 21: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca](https://reader030.vdocuments.mx/reader030/viewer/2022032703/56649d255503460f949fb860/html5/thumbnails/21.jpg)
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
![Page 22: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca](https://reader030.vdocuments.mx/reader030/viewer/2022032703/56649d255503460f949fb860/html5/thumbnails/22.jpg)
Enterprise Objects Framework (EOF)
![Page 23: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca](https://reader030.vdocuments.mx/reader030/viewer/2022032703/56649d255503460f949fb860/html5/thumbnails/23.jpg)
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
![Page 24: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca](https://reader030.vdocuments.mx/reader030/viewer/2022032703/56649d255503460f949fb860/html5/thumbnails/24.jpg)
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.
![Page 25: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca](https://reader030.vdocuments.mx/reader030/viewer/2022032703/56649d255503460f949fb860/html5/thumbnails/25.jpg)
(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.
![Page 26: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca](https://reader030.vdocuments.mx/reader030/viewer/2022032703/56649d255503460f949fb860/html5/thumbnails/26.jpg)
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)
![Page 27: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca](https://reader030.vdocuments.mx/reader030/viewer/2022032703/56649d255503460f949fb860/html5/thumbnails/27.jpg)
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).
![Page 28: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca](https://reader030.vdocuments.mx/reader030/viewer/2022032703/56649d255503460f949fb860/html5/thumbnails/28.jpg)
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?
![Page 29: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca](https://reader030.vdocuments.mx/reader030/viewer/2022032703/56649d255503460f949fb860/html5/thumbnails/29.jpg)
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
![Page 30: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca](https://reader030.vdocuments.mx/reader030/viewer/2022032703/56649d255503460f949fb860/html5/thumbnails/30.jpg)
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...
![Page 31: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca](https://reader030.vdocuments.mx/reader030/viewer/2022032703/56649d255503460f949fb860/html5/thumbnails/31.jpg)
WebObjects Deployment(hardware and software views)
![Page 32: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca](https://reader030.vdocuments.mx/reader030/viewer/2022032703/56649d255503460f949fb860/html5/thumbnails/32.jpg)
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).
![Page 33: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca](https://reader030.vdocuments.mx/reader030/viewer/2022032703/56649d255503460f949fb860/html5/thumbnails/33.jpg)
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.
![Page 34: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca](https://reader030.vdocuments.mx/reader030/viewer/2022032703/56649d255503460f949fb860/html5/thumbnails/34.jpg)
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
![Page 35: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca](https://reader030.vdocuments.mx/reader030/viewer/2022032703/56649d255503460f949fb860/html5/thumbnails/35.jpg)
Work Term Reports Online
![Page 36: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca](https://reader030.vdocuments.mx/reader030/viewer/2022032703/56649d255503460f949fb860/html5/thumbnails/36.jpg)
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.
![Page 37: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca](https://reader030.vdocuments.mx/reader030/viewer/2022032703/56649d255503460f949fb860/html5/thumbnails/37.jpg)
ECE Survey
![Page 38: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca](https://reader030.vdocuments.mx/reader030/viewer/2022032703/56649d255503460f949fb860/html5/thumbnails/38.jpg)
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
![Page 39: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca](https://reader030.vdocuments.mx/reader030/viewer/2022032703/56649d255503460f949fb860/html5/thumbnails/39.jpg)
ECE Course Book Application
![Page 40: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca](https://reader030.vdocuments.mx/reader030/viewer/2022032703/56649d255503460f949fb860/html5/thumbnails/40.jpg)
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
![Page 41: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca](https://reader030.vdocuments.mx/reader030/viewer/2022032703/56649d255503460f949fb860/html5/thumbnails/41.jpg)
ECE Inventory / Loan Application
![Page 42: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca](https://reader030.vdocuments.mx/reader030/viewer/2022032703/56649d255503460f949fb860/html5/thumbnails/42.jpg)
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.
![Page 43: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca](https://reader030.vdocuments.mx/reader030/viewer/2022032703/56649d255503460f949fb860/html5/thumbnails/43.jpg)
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.
![Page 44: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca](https://reader030.vdocuments.mx/reader030/viewer/2022032703/56649d255503460f949fb860/html5/thumbnails/44.jpg)
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.
![Page 45: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca](https://reader030.vdocuments.mx/reader030/viewer/2022032703/56649d255503460f949fb860/html5/thumbnails/45.jpg)
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.
![Page 46: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca](https://reader030.vdocuments.mx/reader030/viewer/2022032703/56649d255503460f949fb860/html5/thumbnails/46.jpg)
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
![Page 47: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca](https://reader030.vdocuments.mx/reader030/viewer/2022032703/56649d255503460f949fb860/html5/thumbnails/47.jpg)
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?
![Page 48: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca](https://reader030.vdocuments.mx/reader030/viewer/2022032703/56649d255503460f949fb860/html5/thumbnails/48.jpg)
(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
![Page 49: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca](https://reader030.vdocuments.mx/reader030/viewer/2022032703/56649d255503460f949fb860/html5/thumbnails/49.jpg)
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 - [email protected] and please CC ECE Lab Director: Bill Ott - [email protected]
Send Informal questions / comments: Sanjay Singh - [email protected]
![Page 50: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca](https://reader030.vdocuments.mx/reader030/viewer/2022032703/56649d255503460f949fb860/html5/thumbnails/50.jpg)
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
![Page 51: Apple WebObjects: Overview and Applications S. Singh / ECE / UW ssingh@swen.uwaterloo.ca](https://reader030.vdocuments.mx/reader030/viewer/2022032703/56649d255503460f949fb860/html5/thumbnails/51.jpg)
Questions / Comments(time permitting)
Thank you for attending!
S.