INFO202 - Intro to EBusiness Technologies - Spring '09

Points include all that I have seen as at Sunday afternoon the 10th. Please check your points and report any errors or omissions asap.

Quiz #3, The Exam, and Course Surveys were at the scheduled exam times: The morning section was Thursday April 30th at 1:00, and the Evening was Tuesday evening, May 5th at 7:00. Some students from the morning section will be joining the evening section to take the exam, or to show their queries from the command line for Project #3.

Quiz #3 Questions will be a sampling of these. If you are considering taking the cumulative exam, it will be worth 30 points, a resampling of questions from Quiz #2 and Quiz #1.

Course Survey: Please fill in this survey, at Survey Monkey, about you and INFO202. 2 points will be added to your final grade if done at the exam time and you show me your last page. Thanks

Quiz #3 Questions will be a sampling of these. If you are considering taking the cumulative exam, it will be worth 30 points, a resampling of questions from Quiz #2 and Quiz #1.


4/28: EDI-Electronic Data Interchange, XML, ANSI X12, &c

  • w3schools.com provides a quick and thorough introduction to XML.

  • Lecture today is about how EBusiness is conducted.  We usually hear 'C2B' for 'Customer to Business', or 'B2B' for 'Business to Business', but it's often a longer 'dance', like C2B2B2B2C where a couple or a few businesses are involved beyond the first C2B interaction.  I'll do a demo in class making a purchase off a Yahoo Store operated by a client of mine and follow the transaction through to the client's warehouse.  This will show the 'XML Web Service' Yahoo transmits via SSL to the client's warehouse and the secure transaction between the warehouse and the credit card's ACH (Automated Clearing House), and a Purchase Order transmitted to a Supplier.

  • 'EDI Standards' have greatly reduced the cost of connecting the computer rooms of suppliers with their customers.  Without them, the costs of adapting to each supplier's or customer's systems would be prohibitive.  With them it's more and more cost-effective. 

    ANSI X12 was developed in the late '70s and is the standard used for most EDI among US business and in countries friendly to the US.  EDIFACT was developed in the mid '80s and is used in the European Community and many other countries.  Most big business systems are able to transmit and receive business documents (Purchase Orders, PO Acknowledgement, Shipping Notices, Invoices, Catalog data, &c, &c) with either standard.

    Both these standards were developed before XML emerged as 'the standard' (we hope) and they are both being re-tooled from their original formats to use XML.  They are not changing the 'business rules' or the data carried in the documents, but are adapting the existing sets to use XML.

    Instructor's web page about X12: To this we need to add that HTTPS & SSL are the primary methods for delivering these documents today, where in the past they were transmitted on VANs-Value Added Networks, which really didn't add any value except connectivity, now The Internet provides secure connectivity for much less cost.

    GXS Tutorial Used in Class

Quiz #3, The Exam, and Course Surveys are at the scheduled exam times: The morning section is Thursday April 30th at 1:00, and the Evening is May 5th at 7:00. Quiz #3 will be similar to the earlier quizzes, and sample questions will be posted soon.

The Exam is optional. If taken, it will be a sampling of about a dozen questions from those posted for Quizzes #1 & #2 and will add 30 points to the total available for the semester. The final grade will be the percentage of your points earned divided by the points available -- if the result of taking the Exam is a lower grade, the lower grade will be posted.

Next 10 Points, Project #3:

  • 5 points are available, on or before the Exam Day, for demonstrating in the lab two queries on the EBUS202 database that are not already in the samples at info202.info/astudent or web pages. The queries must: 'make sense' and not be random lists of data; involve SQL features like sum & group by, order by, limit, and/or filtering using the where clause; and, join at least two tables.
  • 10 points are available for incorporating a script like DonationReports.php into your website. Your reports page, or pages, must be linked to the same external stylesheet as your site's other pages. And, there must be links, or a link, on your site's home page that clearly lead the user of your site to your two novel queries.

MySQL & PHP: This introduces two of EBusiness' enabling technologies: Data Base Management Systems & Server-side Scripting Languages. Practically all enterprise data are kept in a DBMS these days, and all modern web programming languages provide an API (Application Program Interface) that facilitates the presentation of data to people via web browser, or to other computer systems using web services.

The server at info202.info uses MySQL as its DBMS and PHP as its server-side scripting language. In a windows environment, SQL Server would likely be the DBMS and the scripting involves ASP-Active Server Pages and one of the languages in Visual Studio.NET, likely to be VisualBasic or C#. Other web servers are programmed with Java or other open source languages with access via a CGI-Common Gateway Interface. Python, Ruby, Ruby on Rails, and Perl are maybe the most well known, and there are dozens of others.

About DBMS: A DataBase Management System can be thought of as a system that is dedicated for doing CRUD on data (Create, Retrieve, Update, & Delete). A DBMS may be software that manages a database in a PC environment, like Access or OpenOffice Database. Or, it can be a separate machine at the 'back end' of an application system, as is the case in the 'tiered' architecture likely to support today's web & desktop application environments. MySQL or SQLServer are likely to be deployed this way, where the 'database server' is attached to a fast network and can be securely accessed from virtually anywhere via The Internet -- this allows an enterprise to have the desirable 'centralized database' and provide 'distributed access' to its customers, suppliers, and employees from anywhere.

SQL is practically The Database Programming language for 'Relational Databases' and it works on practically every DBMS in regular use today, whether the DBMS is relational or not. The relational model was developed for records on punched cards, tapes, and the earliest disk drives and is not the optimum design for records on disk. Other data models were developed after hard disks came on the scene (in the late '60s) and are better suited for the quick & direct access disks provide. But, today's hardware is fast enough that Relational DBMS can handle all but the largest databases and highest transaction volume.

There are DBMS architectures other than 'relational', and they hold a huge share of the worlds' data. IBM's IMS, for example, is a 'hierarchical database'. UniSys's DBMS is a 'CODASYL compliant database'. The data structures involved in these databases allow programmers a wider range of techniques to optimize speed for updating data and reporting information.

The largest databases and highest rate of transaction processing are supported by mid-range and mainframe computers running OSs optimized for huge transaction volume. In an IBM mainframe environment this is likely to be 'CICS', which is a very mature transaction processing technology in use since the late 60's. Think of systems for the Stock Exchange, IRS, DMV, or an EBusiness like Amazon or EBay. Most have a proprietary mainframe at the heart of their operations, and use a mix of proprietary and open components to extend their access via the web.

Today, practically all DBMS are 'SQL compliant' whether they are relational at their core or not. SQL is the most prevalent database programming language.

The Range of DBMS: SQL works for single-user MSAccess databases all the way thru to Oracle which runs on large mainframes and back thru mid-range and server-class computers. It is not appropriate to deploy Access for multi-users, but many organizations do it. In the middle range, MySQL is very popular & might be an appropriate choice. But although MySQL is quick & almost free, it is not yet as 'scalable' as Oracle or a mainframe DBMS -- if MySQL is put in a situation where the transaction volume is too high it just freezes. 'Load balancing' to make a cluster of MySQL servers is tricky stuff, and prudent network administrators would look to a more scalable solution. Microsoft's SQLServer provides a well-engineered mid-range solution and is well integrated with their VisualSudio.NET IDE, making it a more attractive choice here in 2009. Oracle deploys very nicely on Linux, and although it's not cheap it is exceptionally well-engineered and supported and can 'scale' almost infinitely to support exponential growth of computing needs.

Server-side scripting: PHP is a relatively new, Open Source, programming language which began to catch on in the late '90s. Designed from scratch to work as a module for the Apache web server to serve up content from DBMS, it has a large following, and has matured nicely to provide very, very simple APIs (Application Program Interfaces) for the database, file-system, and browser-supplied data. It is a very efficient 'interpreted' language, and is very 'powerful' -- programmers who learn it can be very productive and produce very quick websites that are very secure.

'LAMP' is prevalent in IT job listings, stands for Linux/Apache/MySQL/PHP-Perl-Python.  Linux powers info202.info, and Apache is its web server.

These next ten points are earned by working with the MySQL database server and server-side scripting with PHP:

  • Intro to DBMS as shown in class.

    Use w3schools.com, Server Scripting (at the left of the page), Learn SQL as your intro text for SQL.

    More intro to DBMS as at SeSPoP. 

    Log into mysql _after_ you log into info202.info! From the command line, use this to get the mysql prompt:

             mysql -ustudents -plittlesecret EBUS202

  • Use w3schools.com, Server Scripting, Learn PHP as your introductory text to PHP. 

    Note:  You do not need to do the 'Download PHP' & 'Install PHP' steps!  info202.info already has PHP installed and ready for you to use at the command line when you log in with Putty.exe.  (If you're interested in going further with these Open Sourse tools and want to put the AMP environment on your Windows machine, that's WAMP, and the environment has been made into an easy-to-install package. Googling on 'download wampserver' will get you to a site to download wampserver, a popular version of this environment.)

    Discussion of the sample scripts: Database programming with PHP & MySQL (updated 11/16). 

  • Project #3: Make two 'novel queries' that are not already on one the reports pages for the GET data demo at info202.info/astudent. Get a script like DonationReports.php linked to your home page that leads your site's users to your two novel queries.  The above two bullets discuss what's needed for this.

    DonationReports.php runs without errors when copied to students' web directories. Often, attempts to edit the script result in 'PHP Errors' so that nothing appears on the browser, or the browser reports an error has occurred, but doesn't report the error message. This means 'debugging' is required...

    Debugging PHP: Open putty, log in, and enter the following command. Use Ctrl-C to stop it from running. While it is running it will display any errors that are generated by your site's pages & scripts. A student with the login id 'sbody' would enter this:

    tail -f /var/log/httpd/error_log | grep sbody

    '/var/log/httpd/error_log' is the file where errors are logged. 'tail' is a unix command that shows the last several lines of a file. '-f' means 'follow the tail' so any new lines added will show in the terminal session. '|' is the 'pipe symbol' and is above the back-slash on most keyboards. 'grep' is a unix verb that filters out any lines that do not contain the word following grep.

  • (Advanced Stuff ask for a MySQL database of your own if you want it...)


Earlier Topics: for Exam review...

Quiz #2 was April 7 from these Sample questions.