Wednesday, April 14, 2010

Web 2.0

The term "Web 2.0" is commonly associated with web applications that facilitate interactive information sharing, interoperability, user-centered design, and collaboration on the World Wide Web. Examples of Web 2.0 include web-based communities, hosted services, web applications, social-networking sites, video-sharing sites, wikis, blogs, mashups, and folksonomies. A Web 2.0 site allows its users to interact with other users or to change website content, in contrast to non-interactive websites where users are limited to the passive viewing of information that is provided to them. (Crook pp. 831 – 836)
Characteristics of Web 2.0
  • Participation: Every aspect of Web 2.0 is driven by participation. The transition to Web 2.0 was enabled by the emergence of platforms such as blogging, social networks, and free image and video uploading, that collectively allowed extremely easy content creation and sharing by anyone.
  • Standards: Standards provide an essential platform for Web 2.0. Common interfaces for accessing content and applications are the glue that allows integration across the many elements of the emergent web.
  • Decentralization: Web 2.0 is decentralized in its architecture, participation, and usage. Power and flexibility emerges from distributing applications and content over many computers and systems, rather than maintaining them on centralized systems.
  • Openness: The world of Web 2.0 has only become possible through a spirit of openness whereby developers and companies provide open, transparent access to their applications and content.
  • Modularity: Web 2.0 is the antithesis of the monolithic. It emerges from many, many components or modules that are designed to link and integrate with others, together building a whole that is greater than the sum of its parts.
  • User Control: A primary direction of Web 2.0 is for users to control the content they create, the data captured about their web activities, and their identity. This powerful trend is driven by the clear desires of participants.
  • Identity: Identity is a critical element of both Web 2.0 and the future direction of the internet. We can increasingly choose to represent our identities however we please, across interactions, virtual worlds, and social networks. We can also own and verify our real identities in transactions if we choose.
Domains
  • Open web: The entire space of the World Wide Web opens to anyone to access and participate. This has been the initial domain in which Web 2.0 technologies, applications, and attitudes have developed.
  • Enterprise: The power of Web 2.0 technologies, originally developed on the open web, is now being applied within enterprises to enhance performance and achieve business outcomes. This domain is sometimes termed Enterprise 2.0.
Technologies
Web2.0 technologies are as follows
  • Aggregation: Aggregation brings multiple content sources together into one interface or application.
  • AJAX: (Asynchronous JavaScript and XML) AJAX is combination of technologies that enables highly interactive web applications.
  • API: (Application Programming Interface) API is defined interface to a computer application or database that allows access by other applications.
  • Embedding: Embedding supports integration content or an application into a web page, while the original format is maintained.
  • RSS: RSS stands for Really Simple Syndication. RSS is group of formats to publish (syndicate) content on the internet so that users or applications automatically receive any updates.
  • Ruby on Rails: Ruby on Rails is an open source web application framework. It is frequently used in Web 2.0 website development.
  • Tagging: Tagging means attaching descriptions to information or content.
  • Virtual architecture: Virtual architecture is creation of avatars (alternative representations of people), buildings, objects, and other artifact inside virtual spaces.
  • Widget: Widget is small, portable web application that can be embedded into any web page.
  • XML: (Extensible Markup Language) XML is an open standard for describing data, which enables easy exchange of information between applications and organizations.
Reference: Crook E., "Web archiving in a Web 2.0 world", The Electronic Library, Vol. 27, no. 5, pp. 831 - 836

Sunday, April 11, 2010

Elevator Pitch 1

Elevator Pitch
Here is my Elevator Pitch for Assignment 1.

Electronic commerce, commonly known as e-commerce , consists of the buying and selling of products or services over electronic systems such as Internet and other computer networks. The amount of trade conducted electronically has grown rapidly since the spread of Internet. A wide variety of commerce is conducted in this way, encouraging and drawing on innovations in electronic funds transfer, supply chain management, Internet marketing, online transaction processing, electronic data interchange (EDI), inventory management systems, and automated data collection systems. Modern electronic commerce typically uses the World Wide Web at least at some point in the transaction's lifecycle, although it can encompass a wider range of technologies such as e-mail as well.
PHP is a server-side HTML integrated scripting language, which is used for designing dynamic web pages. PHP is mainly used in world-class operating system, such as, UNIX, LINUX and also in Windows. In the true sense, PHP is the perfect combination of practical programming rules and object oriented programming (OOPs). Since PHP uses desktop applications and command line interface, it is considered to be the best traditional server side scripting language.
Most of the well-known database connections, such as, Oracle, My SQL, ODBC and SQL get support from PHP programming. So, it is indeed a good choice for the freelance programmers to use PHP development for creating their dynamic e-commerce websites.

Workshop 5

Predefined Variables
Additionally, PHP scripts have access to information about your environment. These variables are stored in special hashes called $_ENV and $_SERVER. Most scripts, which use these variables, only use one or two at a time. The following script accesses 2 different _SERVER variables.

Test Code

Workshop 4

Arrays

Arrays can also be created using a key/value pair combination. These are often referred to as associative arrays or hashes. In a hash each value is associated with a unique key. Unlike list arrays that use a number as an index value, associative arrays use any value. The easiest way to comprehend how a hash works is to think of it as a table. In the following table the state name serves to role as key and the city is the value.

State (key)

City (value)

Victoria

Melbourne

NSW

Sydney

South Australia

Adelaide

Queensland

Brisbane

Tasmania

Hobart

Test Code

Workshop 3

Arrays

An array is an ordered collection of values. Each value can be referenced individually using its position in the array. The first element of an array is in position 0 and the second element is in position 1. Creating arrays in PHP can be done in multiple ways, though the following example is one of the simplest.
$cities = array('Beijing', 'Oaxaca', 'Habana', 'Jakarta');
For example, to access the third element of the $cities array u
se $cities[2].

Test Code

Workshop 2

Variables

The Workshop 2 introduces some variables to our PHP script. Variables in PHP begin with the $ symbol. PHP uses arrays and variables to store different values. Variables begin with a $ followed by characters, digits, and underscores. Variable names are case sensitive and are assigned with the '=' operator. Variables are incredibly useful. For example, you may need to keep track of information submitted via a web form or perform calculations on data and store the results.

Here's a simple example:

Test Code

Workshop 1

Workshop 1 - Hello World in PHP

The first PHP example will print "Hello World" in the browser window.

The PHP statement:

print("Hello World");

displays the message "Hello World" in the browser window. Here PHP statement is embedded into HTML documents and PHP statement appears between symbols.

The PHP print function displays the value or string within parentheses in the browser window.

Several important things to note about PHP scripts:

  • PHP is case sensitive, print is different from PRINT
  • PHP statements appear between
  • PHP statements end with a semi-colon
  • You can include comments in your PHP code by beginning the line or lines with // characters
  • Your PHP files should have a .php extension rather than a .html extension. If scripts have a .html extension the server will not know that they are PHP files and will not parse and execute the PHP commands.

Test Code

Exercise_Week 5

XML: eXtensible Markup Language

What is XML?

  • XML is not a markup language like HTML, it is a language used to describe a markup language. The technical term for such a language is meta language
  • Using XML a developer can define markup languages which describe electronic circuitry, information for electronic data interchange, the files produced by Web servers, mechanical parts of aircraft and so on.
  • A developer define a particular language using XML and a tool or utility then takes XML documents which contain text expressed in the language and carries out some process such as converting it to an MS Word document or into some other form.

XML as Internet standard

The major goals of the language are as follows.

  • That it should be easy to use in the Internet.
  • Capable of supporting a large number of applications eg browsers, search engines.
  • That it should be compatible with SGML, the text processing language which was the inspiration for HTML.
  • That it should not be a complicated process to develop processors for documents written in languages defined in XML.
  • Easy to write a program to check that a source text reflects its definition.
  • That the number of optional facilities of the language should be very low.
  • That XML documents should be easy to read and understand.
  • That document written using a language defined by XML should be easy. to develop using simple editors.

XML at work

  • For structuring data on the Web
  • Hierarchical model
  • Define your own tags
  • Tags are like field names in a database
  • Tags define elements
  • Elements may have attributes
  • Tags are case sensitive

Building block of XML

  • Elements
  • Tags
  • Attributes
  • Entities
  • PCDATA
  • CDATA

Elements and tags

  • Elements
    • The main building block
    • May hold data, other elements, or be empty.
  • Tags
    • “Markup” (delimit) elements

Attributes

  • Provide extra information about elements
  • Placed inside the starting tag of an element
  • Always come in name/value pairs

PCDATA

  • Parsed character data
  • Text between the start tag and the end tag of an XML element
  • Will be parsed by a parser
    • Tags inside the text will be treated as markup
    • Entities will be expanded

CDATA

  • Character data
  • Will be ignored parsed by a parser
    • Tags NOT treated as markup
    • Entities NOT expanded

What is XSLT?

  • A language for transforming between XML vocabularies
  • Standardized by the World Wide Web Consortium
  • Integrated with .NET, Apache, IE, Java, Oracle, …
  • XSLT is a slightly new twist:
    • Not a scripting language
    • Not, strictly-speaking, “open source”
  • But not radically different:
    • Typically interpreted
    • Open source implementations
    • Not vendor dominated

XSLT as a programming language

  • XSLT has
    • looping constructs
    • function calling
    • variables
    • parameters
    • math functions
    • module combination

XSLT summary

  • XSLT can be used to compute anything that can be computed
  • It is “Turing complete”
  • But….
    • Certain coding paradigms are VERY awkward
    • Non-textual Input/Output is typically not possible
  • Scripting languages are designed to be general purpose
  • “Modern” scripting languages go well beyond “scripting”
  • They are general purpose multi-paradigm languages
    • But XSLT wins for specificity
  • XSLT has deep native support for XML
  • “Built-in”, highly consistent parser
  • “XPath” XML navigation (“query”) language
  • Special syntax for working with elements
  • XSLT makes input-based recursion easy:
    • Sections within sections within …
    • Part descriptions within part descriptions …
  • XSLT automatically selects the right rule to go with the right element in the input document
  • XSLT keeps track of context: namespaces, current node, current node list etc.
  • Relevant contexts are in both the stylesheet and the document.
  • In most traditional programming languages, the programmer would have to be explicit
Reference: Eustace, K. (2004). Lecture 5: XML: eXtensible Markup Language [PowerPoint slides]. Retrieved from Charles Sturt University, Melbourne Study Centre

Exercise_Week 4

Programming Web servers: Languages for the Web

Hypertext Markup Language

  • HTML was developed by Tim Berners-Lee while at CERN, and popularized by the Mosaic browser developed at NCSA.
  • HTML is a markup language used to create platform-independent hypertext documents on the World Wide Web
  • During the 1990s it blossomed with the growth of the Web.
  • HTML has been extended in a number of ways.
  • Most hypertext documents on the web are written in HTML.
  • The current recommendation is XHTML 1.0, which is a reformulation of HTML 4.01 as an XML 1.0 application.

Common Gateway Interface CGI

  • CGI is a standard for the construction of dynamic HTML documents, by use of an external script (small program) installed on the same machine as the Web server.
  • Common CGI scripts require a local interpreter or compiler.
  • PERL and Python are popularly used to process HTML forms and can verify user inputs, as well as control the return of messages and performing further processing of the forms data.
  • On a secure Web site, CGI can still be used for some e-commerce transactions, such as ordering some perfume for your mother’s birthday.

CGI alternatives

  • JavaScript, PHP, Active Server Pages (ASP), Java Server Pages (JSP)
  • A variety of other proprietary sources such as Cold Fusion products, all provide an alternative to CGI interactivity and security.

JavaScript popularity

JavaScript has been popular for including

  • event-driven, user interface features (display a pull-down menu);
  • interactive multimedia (display a message or image when a mouse arrow passes over a screen area);
  • To validate data and user types into a form.
Java Virtual Machine
  • The Java language is much secured and platform independent when compared to alternative languages.
  • Java's secret is the tightly integrated language model.
  • The steps on the next slide show how the Java Virtual Machine implements a Java Program…

Java Virtual Machine at work

  • Coding - Human-readable Java code is produced
  • Building - A Java Development Tool "build’s the Java program into bytecode, which is saved as a ".class" file.
  • Loading - Via the web or command line, the class file is sent to the Java Virtual Machine (VM) with an attached digital signature. The Java VM is simply an interpreter.
  • Bytecode Verification - The Java VM verifies the digital signature.
  • Isolation - When downloaded remotely, the Java VM isolates the Java program in a restricted part of memory. The Java program is not allowed to access local hard drives and System resources.
  • Internal Integrity - Verification checks are made to insure that the loaded Java program is well formed. Data types are verified along with other syntax structure.
  • Execution - Program execution begins.

The rise of the application servers

  • high-speed caching,
  • rapid application development,
  • secure enterprise portals,
  • identity and content management,
  • business intelligence,
  • application and business integration,
  • Wireless capabilities.

Microsoft .NET

  • .NET is Microsoft’s software development architecture and strategy for developing large distributed software systems.
  • .NET is not meant as a replacement for Java but as an alternative.
  • .NET is component based meaning that as a function is developed, it gets plugged into the framework.

Advantages of Microsoft .NET

  • Before .NET it was difficult for different languages to provide a solution to every problem every time and the language libraries and runtime were not able to be shared.
  • But now, looking at the next slide it can be seen that .NET enables any language to provide a solution because the libraries can be shared.
  • You can share a C# library with C++ or Visual Basic.
  • If you need a web site it can be developed in any language using any of the available language library… even Object COBOL
  • .NET uses XML, has an “n” tier architecture
  • .NET is an easier way to build Windows applications.
  • Documentation was excellent and an increasing amount of textbooks are available.
Reference: Eustace, K. and Bytheway, A. (2004). Lecture 4: Programming Web servers: Languages for the Web [PowerPoint slides]. Retrieved from Charles Sturt University, Melbourne Study Centre

Saturday, April 10, 2010

Exercise_Week 3

Database Servers

A database server is a computer program that provides database services to other computer programs or computers, as defined by the client-server model. The term may also refer to a computer dedicated to running such a program. Database management systems frequently provide database server functionality, and some DBMSs (e.g., MySQL) rely exclusively on the client-server model for database access.

Such a server is accessed either through a "front end" running on the user’s computer which displays requested data or the back end which runs on the server and handles tasks such as data analysis and storage.

In a master-slave model, database master servers are central and primary locations of data while database slave servers are synchronized backups of the master acting as proxies.

Some examples of Database servers are Oracle, DB2, Informix, Ingres, SQL Server. Every server uses its own query logic and structure. The SQL query language is more or less same in all the database servers.

Reference: Eustace, K. (2004). Lecture 3: Database Servers [PowerPoint slides]. Retrieved from Charles Sturt University, Melbourne Study Centre

Exercise_Week 2

Client Server Architecture

The client-server characteristic describes the relationship of cooperating programs in an application. The server component provides a function or service to one or many clients, which initiate requests for such services.

Functions such as email exchange, web access and database access, are built on the client-server model. For example, a web browser is a client program running on a user's computer that may access information stored on a web server on the Internet. Users accessing banking services from their computer use a web browser client to send a request to a web server at a bank. That program may in turn forward the request to its own database client program that sends a request to a database server at another bank computer to retrieve the account information. The balance is returned to the bank database client, which in turn serves it back to the web browser client displaying the results to the user.

Client Server Diagram

The client-server model has become one of the central ideas of network computing. Many business applications being written today use the client-server model. So do the Internet's main application protocols, such as HTTP, SMTP, Telnet, and DNS. In marketing, the term has been used to distinguish distributed computing by smaller dispersed computers from the "monolithic" centralized computing of mainframe computers. But this distinction has largely disappeared as mainframes and their applications have also turned to the client-server model and become part of network computing.

Each instance of the client software can send data requests to one or more connected servers. In turn, the servers can accept these requests, process them, and return the requested information to the client. Although this concept can be applied for a variety of reasons to many different kinds of applications, the architecture remains fundamentally the same.

The most basic type of client-server architecture employs only two types of hosts: clients and servers. This type of architecture is sometimes referred to as two-tier. It allows devices to share files and resources. The two tier architecture means that the client acts as one tier and application in combination with server acts as another tier.

The interaction between client and server is often described using sequence diagrams. Sequence diagrams are standardized in the Unified Modeling Language.

Specific types of clients include web browsers, email clients, and online chat clients.

Specific types of servers include web servers, ftp servers, application servers, database servers, name servers, mail servers, file servers, print servers, and terminal servers. Most web services are also types of servers.

Reference: Eustace, K. (2005). Lecture 2: Clients, servers and distributed paradigms [PowerPoint slides]. Retrieved from Charles Sturt University, Melbourne Study Centre

Exercise_Week 1

E-commerce, distributed applications and the Internet

Introduction

In the first week we examine the type of system which is described by the umbrella term ‘e-commerce’. A number of typical application areas are examined including retailing using the internet, supply chain management and online auctions. We look at some of the underlying technologies used to implement e-commerce applications, for example web technology. We also look at some of the problems which are encountered when developing distributed e-commerce systems, for example problems in ensuring that a system is kept secure from criminal activity. It concludes with an examination of a typical retailing system, how some of the technologies fit together and business models used in the internet.

Distributed Systems

There is no doubt that there is great demand for large-scale distributed applications. Indeed, tremendously expensive special-purpose distributed systems have been deployed and today are used extensively in the banking, airline, and telecommunication industries. The major barrier to supporting these, and even richer, applications on the Internet is the difficulty of designing, building, testing, and maintaining distributed applications using the tools that comprise the state-of-the-art today.

The guiding principles of distributed multi-tiered architectures like J2EE and .net / Windows DNA are Web computing; faster time to market; true interoperability; Scalability, reduced complexity; language, tool, and hardware independence; and lower cost of ownership.

The life cycle of a distributed application can typically be viewed as having four phases:

  • Design phase
  • Implementation and testing phase
  • Deployment and utilization phase
  • Maintenance and evolution phase

It is a collection of experiences and best practices that have been taken from real-world development engagements, providing development teams with access to shared experiences and a proven, repeatable process. The Distributed Application Development Process encompasses modern design principles and proven practices to facilitate the development task and provide developers with a blueprint for building robust and correct distributed applications.

E-Commerce and Internet

There are a number of ways in which companies can make money from the internet. Probably the best known way of making money is by selling some commodity; this could be a non-IT commodity such as a CD or item of clothing or it could be some piece of application software, a font, a browser plug-in or an operating system. Other forms of revenue rising are:

  • Auction sites which auction items on the internet and make profits by taking some commission from the sales.
  • Shopping malls where a number of e-commerce sellers congregate together on the same website; often these sellers will be related to each other, for example they may all sell luxury goods. The mall owner takes a percentage of their profit.
  • Portals which contain massive amounts of material on a particular topic, for example a portal devoted to fishing. Such sites will contain thousands of resource links, tutorials and indexes. They will also contain links to merchants who sell goods associated with the portal topic. There may be a number of ways that the portal owner would make money, for example they could be paid by a merchant for each visit from the portal or the merchant may pay a flat fee for being included in the portal.
  • Digital publishing sites which are effectively magazines on the web. They make profits in a number of ways including advertising and charging vendors for references to their website.
  • Licensing sites which make some software available to other sites, for example search engines which allow a visitor to the site to search for material more easily.
  • Community sites. These are like portals but involve the visitors more, for example a community site devoted to nurses might include a number of chat rooms which allow nurses to talk together in real time and swap advice. Money is made from such sites in the same way as with portals.

Such applications have changed the face of retailing, for example the fast communication of the internet has made bulk buying sites feasible and popular and has given rise to a number of novel commercial models.

Reference: Eustace, K. (2004). Lecture 1: E-Commerce, distributed applications and the internet [PowerPoint slides]. Retrieved from Charles Sturt University, Melbourne Study Centre

Introduction

Hello,

I am Kunal. Welcome to my developer’s blog for the subject ITC594.

This subject investigates the technologies that support e-business initiatives that require careful deployment of an e-commerce infrastructure. It provides opportunities to be made aware of issues and procedures in online business application development.

I have degree in Information Technology and I like programming.

This blog will provide resources of my learning from the subject. The blog is basically structured by category, according to the type of entry such as Introduction, Week Resources, Workshops, and Elevator Pitch. I look forward to reading your comments.

Thank you for visiting my blog.