Post on 31-Dec-2015
description
transcript
What is Marblejar? What does it do?
• a national, web-based IT recruiting company.
• Their goal is to provide qualified IT professionals to employers for both permanent and contract-to-permanent positions.
How Can Marblejar Benefit Employers?
• Marblejar makes hiring new employees easier than ever!
• Marblejar makes it possible for employers to learn as much detail as possible about potential hires before an interview is ever scheduled.
Let Marblejar do work for you
• Every resume is qualified through the Marblejar certification process.
• Contact information is verified before it is provided to employers
• A professional recruiter reviews the resume before it is published on Marblejar.
How can MarbleJar Help me find the job of my dreams?
• You can show off your skills to Employers through online testing
• You can even create a short voice recording describing your skills and accomplishments
• Add a personal touch to your resume by submitting a photo.
ATG DynamoJ2EE Compliant Application Server
• Dynamo Application Server 4 is a Java-based, server-side platform for developing and administering dynamic Web applications that provide custom user experiences.
• Based on Industry Standards– Java and JavaBeans– XML– Servlets – Page Compilation– Java Database Connectivity (JDBC)– Remote Method Invocation (RMI)– Enterprise Java Beans (EJB)
More about Dynamo
• Consistent application development model (Portable)– everything is developed according to the same
model– Large set of reusable services for varying
types of web applications
Even more about Dynamo
• Components and applications built for Dynamo are all plugged in to the same architecture.– everything is developed according to the same model so different
components can easily exchange and use information• Dynamo Backup Server ensures that your site never goes
down once deployed– Dynamo has a Backup Server system that can be implemented to
act as a failover system.– When all the servers in one geographic location go down, users
can be redirected to servers in another location without interrupting the session.
What is a Web Application Server?
Server architecture which dynamically creates web pages Server architecture which dynamically creates web pages based on user inputbased on user input
MarbleJar Code Base and Development
• CEI developed MarbleJar on top of ATG Dynamo
• Things our team will work with:– JTHML Presentation Layer– JavaBean Logic Components– Relational Views for Database Access– Dynamo Personalization Server– XML Logic-Database mapping– MarbleJar’s Relational Database
Dynamo Fast Track Developer Training Manual
• Training session used by CEI
• Covers the basics of Dynamo
• Hard Copy Used primarily as concepts reference
Online Documentation
• Complete set of reference information• Used primarily for coding examples and pre-defined class
inquiries
http://www.atg.com/repositories/ContentCatalogRepository_en/manuals/Dynamo4.5.1/index.html
1. .jhtml Page
• HTML Page with embedded java code
• Server processes java code and returns HTML result
• Can store repeated uses in cache
• Easier implementation than .java file with embedded HTML
2. Component
• Class Identity (JavaBean)
• Two methods normally implemented:
a. Value Request
b. Value Change
• Coordinates with .properties file of the same filename, which contains the initial values of any variable and scope of component
3. Droplet
• Dynamo’s version of J2EE servlet• Embedded .jhtml page• Can contain parameters: similar to GET and POST Data,
session data• Open Parameters: parameters that contain HTML code,
allowing for easier display on web page, can contain droplets.
• standard library droplets: switch, forEach, Range, etc.
4. Nucleus
• Underlying code set that automatically coordinates requests and responses, component functionality, and droplet calls across multiple servers in multiple location.
• Reconfigures in cases of server failure
Access Procedure
• Group members have access to complete working Dynamo Toolkit and MarbleJar code.
• It is our responsibility to modify and write J2EE code to conform MarbleJar standards to UPitt system.
Project Plan (05-2)
Sprint #1 (2/27 – 3/24): • Finish the registration tasks started by the
team from the fall semester (05-1)• Make a home page for the Job Posting
Website
Sprint #2 (3/25- 4/23):• Complete at least one of the other functional
areas of the system, starting with Job Posting
Users:
• Student: Valid Pitt student. Searching for career opportunities. • Company: Potential employer. Posting open job positions. • CS Admin: Administrator
-- Approval / Reject Registration-- Inactivate account
Pending: Wait to be approved by CS AdminActive: Account Approved by CS AdminInactive: -- Account Rejected by CS Admin -- Account no longer in use
Use Case Diagram: Registration Pages
• Companies use Company Registration Page (IT Client Registration) to register.
• Students use Student Registration Page to register.
• CS Admin approve/reject Student and Company Registrations.
Activities / Functions: Registration
• User fills out the Registration Form (Company Registration / Student Registration)
• Marblejar creates a new account (set user’s status: Pending)
• Marblejar notify CS Admin by e-mail
• CS Admin uses Admin page to Approve/Reject registrations
1. Approve: o Marblejar changes User’s Status to Activeo applicant gets Approval notice by e-mail
2. Reject: Reject Registration, User’s Status change to Inactive, Send Rejection notice to applicant by e-mail
Use Case Diagram: CS Admin Page
• CS Admin uses CS Administration Page – Manage Users’ Account.
• Approve / Reject Student Registration & Company Registration in Pending Status (under Pending Approval Listing)
• Inactive users’ Accounts in Active Status
– View Recent Posting (Job & Resume)
Activities/Functions: CS Admin Page
• 3 sections:– View Active Users’ Acct.– Pending Approval Listings: Student, Company– Recent Postings: Job, Resume
• 2 functions:– Manage Users’ Acct.
• New Acct (Status is in Pending):– Approve/Reject Registration (Status change to Active/Inactive)
• Current Users’ Acct (Status is in Active)– View Acct. Information – Inactive Acct due to valid Student’s status, or Company stop posting on PITT
(Status changes to Inactive)
– View Recent Postings• Job Posting• Resume Posting
Company Registration Page
http://208.44.155.13/upittcs/common_dynamic/register.jhtml?function_id=register_ts&usertype=1
Student Registration Pagehttp://208.44.155.13/upittcs/common_dynamic/register.jhtml?function_id=register_js&usertype=1
Registration Submission Page
Notify Applicant the Registration form has been submitted to CS Department
CS Administration Page
Resume & Jobs:• Normal order by Date&Time - 10 most recent postings
Student & Company:• Reverse order by Date&Time - 10 earliest listings
Analysis vs. Architecture vs. Design
• Analysis is the modeling and detailing of requirements to help understand the problem– UI prototypes, use cases, activity diagrams, domain models– What was seen on previous slides
• Architecture is the high level view of the system that is the solution to the problem discovered through analysis– System’s major components and their basic relationship to each other– Interfaces between components– Data Modeling– What is presented here
• Design is the low level view of the system architecture with all system components fully detailed– Detailed classes with members and methods fully defined– Not yet completed
Structural View vs. Behavioral View
• Structural View is focused on physical entities– Analysis: real world objects in the problem domain– Architecture: classes and their inheritance relationships– Design: classes and their composition relationships
• Behavioral View is focused on functionality– Analysis: User Stories and Use cases– Architecture: Interfaces between system elements– Design: Class Methods
• When performing analysis, creating an architecture, or designing, both views are developed in parallel.– One is a means of discovering something about the other
Structure: Bottom Up Approach
1. What domain objects and their properties need to be stored in the database?
2. What transformations must the data go through before being stored or loaded from the database?
3. How should the data be displayed to the user based on the data itself and the user’s input?
Architecture: Structural View (1)
Web based N-tier architecture:
RDBMSWeb Tier
Logic Tier
Data Access Tier
Client Tier
Architecture: Structural View (2)
N-tier architecture using Dynamo Technologies
Browser
IE\Firefox
JHTML
JavaBeans
Relational Views
XML Mapping
Oracle
Architecture: Structural View (3)
Data Modeling of Requirements– Student registration and company registration need to be
stored somewhere
– Both parties have many things in common• Email address and password• Address, city, state, phone
– Solution: Companies and Students are both users of the system, so all common data can be stored in one table
• Column needed to distinguish between user types• Prevents the storage of redundant information
Architecture: Structural View (4)
Data Modeling of Requirements– Dynamo has a predefined database tables for user profiling
called dps_user
– Define a simple_codes table for the easy access and change of codes that distinguish students from companies
User_ID Name Address Phone Email User_type
1 CEI 98 main 412-555 CEI 1111
CodeID Description
1111 Company
DPS_USER
CodesForeign Key Constraint
Architecture: Structural View (5)
Data Modeling of Requirements– DPS_USER table doesn’t provide columns related to the approval
process.– Required Fields: decision, apply date, decision date– Solution: USER_APPLICATIONS table with the necessary fields
and a reference to the user table
appID Apply Date
Decision Decision Date
User_ID
10123 3/1/05 accept 3/2/05 1
USER_APPLICATIONS
User_ID Name …
1 CEI …
DPS_USER
Foreign Key Constraint
Architecture: Structural View (6)
Data Access Tier Architecture– The DPS_USER table and all of Dynamo’s built in
tables are mapped by an XML file• Maps JavaBeans members to database columns• Exact mapping defined during design• Most of the work done for registration data storage
done automatically by Dynamo
– All other database information extracted via relational view components…
Architecture: Structural View (7)
Relational View Components:Registration:
– View User Code: • get the user codes for entry into DPS_USER
– View States: • define a list of valid states for profile selection
CS Administration:– View All Users:
• allows for the display of students and companies separately– View Pending Students– View Pending Companies– View Recent Jobs– View Recent Resumes
Architecture: Structural View (8)
Requirements to Components: First Cut– Web Components:
• Major Components: – Registration Page for Student – Registration Page for Company– CS Admin Page main page
• Minor Components:– Admin page to display pending applications– Admin page to display recent posting– User Directory page
– Business Logic Components:• Bean to process student registration form• Bean to process company registration form• Bean to provide admin functions
Architecture: Structural View (9)
Requirements to Components: Second Cut– Similarity between company and student allows for the
use of a single registration page• Register jhtml page
– Similarity in needed processing of company and student pages allows for the use of a single component
• RegisterFormHandler java bean
– CS Admin still needs its own logic component• CSAdmin jhtml page• Administer java bean
Architecture: Structural View (10)
Architecture Components: Final CutDatabase Tables:
– DPS_USER– CODES– USER_APPLICATIONS
Relational Views:– View User Code– View States– View All Users – View Pending Students– View Pending Companies– View Recent Jobs– View Recent Resumes
Oracle
Relational Views
XML Mapping