Aces at duke
Download
1 / 48

ACES at Duke - PowerPoint PPT Presentation


  • 331 Views
  • Updated On :

ACES at Duke. Re-inventing a custom web-based student system application. Part 1. Making decisions. What is ACES?. Duke’s online student system 24 hour access to registration, grades, bio/demo data, financial data, advising tools. What is STORM?.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'ACES at Duke' - lotus


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Aces at duke l.jpg

ACES at Duke

Re-inventing a custom web-based student system application


Part 1 l.jpg

Part 1

Making decisions


What is aces l.jpg
What is ACES?

  • Duke’s online student system

  • 24 hour access to registration, grades, bio/demo data, financial data, advising tools


What is storm l.jpg
What is STORM?

  • Duke staff and faculty web access to student systems information

  • Access to student data, class information, applicant information

  • Ability to perform common course and student data management functions


Slide6 l.jpg
Why?

  • HTMLAccess (the PeopleSoft product) was immature with unknown performance

  • IVR wouldn’t be able to handle registration with a PeopleSoft backend

  • Difficult interface and cumbersome navigation within the PeopleSoft client

  • Easier to keep customizations outside of PeopleSoft


Slide7 l.jpg
Why?

  • Desire for added functionality

    • Registration

    • Curriculum/Advising

    • Online Application Entry

    • Differences across professional schools


Bookbag allows for easier advising less load during registration time simpler course planning l.jpg
Bookbag allows for easier advising, less load during registration time, simpler course planning


Previous technology l.jpg
Previous Technology registration time, simpler course planning

  • HAHTSite/VisualBasic front end

  • Access to PeopleSoft Oracle 8i database via ODBC

  • Extra tablespace to support added functions

  • PeopleSoft Message Agent used to save data, so business logic is executed by PeopleSoft Application server


Hardware l.jpg
Hardware registration time, simpler course planning

  • Cisco CSS load balancer

  • 3 IBM H70 AIX 4.3 Web Servers (iPlanet)

  • 3 IBM Netfinity Windows NT backend servers


Downside l.jpg
Downside registration time, simpler course planning

  • High support costs for HAHTSite and iPlanet

  • HAHTsite version no longer supported

  • Very specialized programming knowledge required for maintenance

  • Expensive hardware


Step 1 selling java l.jpg
Step 1: Selling Java registration time, simpler course planning

  • A chance to clean up and consolidate code

  • OO design makes for a simpler design and easier maintenance

  • Shared code libraries reduce redundant code

  • A chance to rethink and redesign application pathways based on user feedback


Step 2 selling free tools l.jpg

jBoss 3.0.3 registration time, simpler course planning

Jetty 4.2

Jdk 1.4

Jdom b7

Ant

Jedit

cvs

Total Cost: $0

Step 2: Selling Free Tools


Step 3 architecture l.jpg
Step 3: Architecture registration time, simpler course planning

  • Remove business logic from display logic

  • Achieve greater flexibility and fault tolerance in system design

  • Facilitate a larger programming team

  • Maintain as much insulation from PeopleSoft patches and fixes as possible

  • Increase usability of custom business logic


Making the move l.jpg
Making the move registration time, simpler course planning

  • Redeveloped business logic to work against PeopleSoft 7.6

  • Business logic all contained within a combination of Stateless Session, CMP and BMP Entity EJBs

  • All business logic returned as XML with an eye toward a future portal

  • XML converted to HTML with XSLT


The next steps l.jpg
The Next Steps registration time, simpler course planning

  • Changing business logic to use PeopleSoft 8.1 table changes

  • Changing message agent calls to use the component interface

  • Exposing business logic to other Duke applications – generating PDFs, Excel Spreadsheets, reports


New hardware l.jpg
New Hardware registration time, simpler course planning

  • IBM xSeries rack-mount servers

    • Inexpensive

    • Not overkill for the job

    • Having a farm makes maintenance potentially more tedious, but reduces negative impact of any system failures and increases scalability

    • Minimal machine room space and lower power requirements


The future l.jpg
The Future registration time, simpler course planning

  • Drop ACES in favor of PS-delivered web client?

  • Use business logic for Duke-specific functions and incorporate it into the PS web client


Part 2 l.jpg

Part 2 registration time, simpler course planning

Using the PeopleSoft Component Interface with Java


What s the component interface l.jpg
What’s the Component Interface? registration time, simpler course planning

  • PeopleSoft’s way of allowing 3rd party programs access to business logic in version 8.x

  • Replacement for the version 7.x Message Agent


What do you get l.jpg
What do you get? registration time, simpler course planning

  • Data entry with the Component Interface simulates entering data directly into the pages

  • Order of parameters set was not guaranteed under Message Agent

  • All PeopleCode is fired, but order is not guaranteed


Step 1 l.jpg
Step 1 registration time, simpler course planning

  • Within App Designer, create a component interface mapped to the component you want to access


Components in version 8 are like panel groups in version 7 l.jpg
Components in version 8 are like panel groups in version 7 registration time, simpler course planning


Step 2 l.jpg
Step 2 registration time, simpler course planning

  • PeopleSoft begins generating the component interface by selecting all fields from the component referenced

  • Fields can be added or removed at will, but less dangerous to leave them all and only set the ones you care about in the client program


Step 3 l.jpg
Step 3 registration time, simpler course planning

  • Build the API (the .jar file to use with the client)


Make sure java classes build box is checked l.jpg
Make sure Java Classes Build Box is checked registration time, simpler course planning


Step 4 l.jpg
Step 4 registration time, simpler course planning

  • Generate the client template


Coding the client application l.jpg
Coding the client application registration time, simpler course planning

  • Add the following imports:

    import java.io.*;

    import java.math.*;

    import psft.pt8.joa.*;

    import PeopleSoft.Generated.CompIntfc.*;

  • The joa package comes with PeopleSoft

  • The .Generated package was built by the previous steps


Coding the client application34 l.jpg
Coding the client application registration time, simpler course planning

  • Setting the server name and port

    String strAppSeverPath = “//153.4.555.1212:9000";

    String strOperatorID = “username";

    String strPassword = “password";

  • App server path is IP (or DNS name) of application server machine, followed by a : and the JOLT port address


Coding the client application35 l.jpg
Coding the client application registration time, simpler course planning

  • Create the session

    ISession oSession = API.createSession();

  • Connect to the server

    oSession.connect(1, strAppSeverPath, strOperatorID, strPassword, null);

  • Get the component

    IEnrlRequest oEnrlRequest = (IEnrlRequest) oSession.getComponent("ENRL_REQUEST");


Coding the client application36 l.jpg
Coding the client application registration time, simpler course planning

  • Set the keys

    oEnrlRequest.setEnrlRequestId(“0000000000”);

    oEnrlRequest.setEmplid(“0039646”);

    oEnrlRequest.setAcadCareer(“UGRD”);

    oEnrlRequest.setClassNbr(1022);

    oEnrlRequest.setEnrlReqAction(“E”);

    oEnrlRequest.setInstitution(“DUKEU”);

    oEnrlRequest.setStrm(“0960”);


Coding the client application37 l.jpg
Coding the client application registration time, simpler course planning

  • Create the new request

    oEnrlRequest.create();


Coding the client application38 l.jpg
Coding the client application registration time, simpler course planning

  • Adding classes

    IEnrlRequestEnrlReqDetailCollection oEnrlReqDetailCollection = oEnrlRequest.getEnrlReqDetail();

    IEnrlRequestEnrlReqDetail oEnrlReqDetail;

    for (int i = 0; i < oEnrlReqDetailCollection.getCount(); i++){ oEnrlReqDetail = oEnrlReqDetailCollection.item(i);

    // Add an item to the collection for each class.

    oEnrlReqDetail.setClassNbr(1022); oEnrlReqDetail.setEnrlReqAction(“E”);

    }


Coding the client application39 l.jpg
Coding the client application registration time, simpler course planning

  • Save the request

    oEnrlRequest.save();

  • Get the generated enrollment request ID

    String enrl_request_Id = oEnrlRequest.getEnrlRequestId();


Part 3 l.jpg

Part 3 registration time, simpler course planning

Design and performance considerations


Lessons learned from previous version of aces l.jpg
Lessons learned from previous version of ACES registration time, simpler course planning

  • Database tuning (indices, hints) is critical

  • Network traffic accounts for 50-75% of the time spent waiting for results

    • Co-locate a web-only PS app server and database

    • Use connection pooling wherever possible

  • End-to-end performance testing is critical, the whole is not always the sum of the parts


Some ejb decisions l.jpg
Some EJB Decisions registration time, simpler course planning

  • BMP used much more heavily than CMP for read-only data

    • Flexible caching algorithms and parameters

    • Database hits can be greatly minimized on common data at the expense of slightly stale results


Some ejb decisions43 l.jpg
Some EJB Decisions registration time, simpler course planning

  • Stateless session beans used for up-to-the second read-only data and to save infrequently used data that does not need to be cached

  • CMP used for frequently updated Duke-specific data controlled entirely through the web application (the bookbag)


Consolidation of machines and processes l.jpg
Consolidation of Machines and Processes registration time, simpler course planning

  • Co-locating EJB, Servlet, and web server on the same machine, and if possible within the same JVM greatly increases performance


Connection pooling l.jpg
Connection Pooling registration time, simpler course planning

  • Database

  • App server connections


Exposing ejb methods to clients l.jpg
Exposing EJB methods to clients registration time, simpler course planning

  • Use one stateless session bean to expose the API to EJBs

  • Reduces the number of JNDI lookups that need to be done to acquire an EJB


Investigate clustering and cache options l.jpg
Investigate Clustering and Cache Options registration time, simpler course planning

  • Jboss is highly configurable

  • Clustering may decrease performance because of the introduction of network traffic and coordination, but not using clustering can cause skewed results if sticky sessions are not used


Contact information l.jpg
Contact Information registration time, simpler course planning


ad