Apple WebObjects: Overview and Applications S. Singh / ECE / UW [email protected] 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 cant change a pages 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 Ages 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, highlevel 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 Apples & 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
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 dont care how they are stored, in file / DB; app code stays same EOF takes care of all the details of ObjectRelational 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 classs variables directly to HTML FORM input elements When your page is invoked, the users input has been magically populated into your pages instance
variables. How Web Applications are made with Apple WebObjects WebObjects applications generate dynamic HTMLbased 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
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 youre 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] 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.
So, Scientists use: Body structure Beak differences Foot structure Behavior/Songs 28 Orders of Class Aves 6 Bird Orders You Need to Know Order Passeriformes ("sparrow form") Largest order (~7,000 species, most diverse) Small to medium size Perching, song birds Examples:...
Created from a melt - recrystallize. Classified based on texture and mineral composition. May be mafic or felsic. As we learned from Mr. Lee, "Igneous rocks form when volcanoes eruptBecause when the lava finally gets cool enoughThe molten material begins...
3 main types. TROPISM. Plant growth in response to a stimulus ("tropo" - "turn") *Can be positive or negative. GEOTROPISM. Geotropism. is the growth of a plant in response to gravity. Positive Geotropism.
From an evolutionary and cross-cultural point of view, the ... For example, the RB group on the SN faced up for 20% percent of their sleep period time, while the solitary sleeping infants, on average, faced up for only 6.4...
RF Behaviors Wave Propagation Types of Propagation Line-of-Sight Sky Wave Ground Wave Reflection Absorption Scattering Refraction & Diffraction Multipath Summary The Basics of Radio Frequency: Electromagnetic waves and how they are generated The relationship between wavelength, frequency, and the speed...
A nutrition-related disorder resulting from lack of intake or uptake of nutrition that leads to altered body composition (decreased fat-free mass) and body cell mass leading to diminished physical and mental function and impaired clinical outcome from disease. In the...
Ready to download the document? Go ahead and hit continue!