Matters pertaining to IT
The computers were bulky, slow and expensive resource in pre-70s so it made sense to share them for common business functions like payroll amongst a number of clients. The rapid advances in technology heralded advent of PC in 80s, then subsequent increase in memory availability, faster CPUs and faster communication speeds made it viable to have in-house LAN-based client-server offerings to support these functions. The PCs were cheap enough to allow individuals ownership without worrying about idle time. Also the business users sought decision-support systems to complement transactional systems and the IS/IT departments started in the companies thus fading time-sharing.
The complexity involved in deploying and upgrading software in distributed environment, the consequential difficulties in negotiating relevant licenses, the interoperability issues, ubiquity of browser-based client, fast-and-cheap communication, affordable scalability, the trend towards outsourcing etc have all aided the drive towards SaaS. Hardware and software technology is seen as purchasable commodity and the organisations prefer to concentrate on their core competencies, expecting secure and resilient service from experts. The ASPs also feel confident that benchmarks exist to provide requisite concurrency and performance from their server farms, allowing them to focus on their domain-expertise. Also the approach is usually cheaper than in-house solution when TCO is taken into account. All these factors mean that SaaS offerings will continue to grow in foreseeable future.
All the sizeable Java EE applications use a framework like Struts, Java Server Faces etc where the controller is invariably a servlet object. The key disadvantage of servlet technology is that even a minor modification to static content requires changes to the Java code to output HTML. The JSP overcomes this shortcoming by combining HTML and Java. The static part can be pure HTML where as the dynamic aspect can be managed by including code in JSP tags for directive, scripting and action. (Incidentally, JSP tag libraries and JSP expression language are preferred vehicles for including Java code into JSP nowadays). A combination of JSP and servlets provides horses for courses. Historically, the servlet technology is the forerunner to JSP for dynamic content and, unsurprisingly, each JSP page translates to servlet code prior to execution. Thus it is common to use both servlet and JSP technologies in applications as servlets are inevitable but JSP provides convenience, simplicity and ease of development. It also facilitates segregation of responsibilities amongst development teams as the web designers can focus on rather static presentation aspects in JSP whilst the Java developers concentrate on processing logic in servlets and custom tag libraries. This can be enforced by declaring some JSP pages as scriptless in the deployment descriptor of the application. Also in the prevalent model-view-controller architecture, the servlets act as controller whilst the JSP pages provide views. Both technologies are capable of invoking each other so we can focus on the best solution for the task at hand.
However, in the real world to create a truly interactive web application we will go a step further and use Java Server Faces (JSF) technology which builds on these two technologies. With JSF2.0, it is even deemed that JSP is deprecated for creating views.
The peer-to-peer (P2P) software architecture has been instrumental in changing the landscape of the music industry. The drive by the music industry to have the free Napster file sharing service outlawed in 2004 to protect their intellectual capital points to the negative impact on their revenue. However, groups like Arctic Monkeys have seen it as an opportunity to deliberately share their demo CDs free of charge to build fan base with a little marketing outlay.
Access restrictions are enforced by the DBMS facility that ensures that only authorised users gain access to the DBMS. For example, a valid user is allowed to manipulate a table with given access rights.
Integrity constraints are constraints that maintain the consistency and correctness of data.
They protect the contents of the database in totally distinct ways. When a DBMS restricts access to a user to do certain things, like granting right to only view a table rather than update it, then it is ensuring that the data providers with responsibility for maintaining the accuracy of the data content enters, updates and deletes the data while the data consumers just have the privilege to review data for their proper functioning. Also the sensitive company data pertaining to finance and personnel functions can be shielded from the prying eyes of those who have no need for direct access to this data by not authorizing access to these data areas. Essentially, access restriction is ensuring that only the data necessary and sufficient for carrying out a job is made available to the person and the rest of the data is hidden from him. Through access restrictions we can segregate responsibilities within the organisations by providing access authorization to data horizon necessary for a role. These security access restrictions are centrally defined and DBMS automatically enforces them while accessing the database (Block1,p24). The data correctness is achieved by proper responsibility sharing through access privileges and obviating the potential for unauthorised rogue data manipulations. Any SQL statement issued by a user can only be commensurate with his authorised access profile or DBMS will not execute it.
Integrity constraint ability to enforce consistent and correctness is best understood through example. If we have a geographical hierarchy with levels of company, country, region and world (eg Unilever UK, UK, Europe, Global held in COMPANIES, COUNTRIES, REGIONS and WORLD tables) then while defining a company in COMPANIES table it ensures that it is only linked to the valid countries defined in the COUNTRIES table in the database and countries and linked to the valid regions in REGIONS table. If we had linked a company to an undefined country in the database, then while aggregating regional data this rogue country would have been missed in table linkages as it is not part of the hierarchy. Also if we try to delete a region in our REGIONS table while there are countries linked to that region in the COUNTRIES table then integrity constraint could either prevent us from carrying out this operation or cascade the delete to all the records in COUNTRIES table that are linked to REGIONS table with region_id as the foreign key. All these type of rule governing referential integrity are stored in the system catalog managed by the DBMS and are automatically enforced by DBMS without required any programming intervention by the developer (Block1,p24). Although we have focussed on the referential integrity in our example, we can see the data integrity being enforced by DBMS when it enforces user-defined rules like date of birth has to be lower than date of school start or numeric phone number should not have any arithmetic operations performed on them. We can define a number of integrity constraints like email address must include ‘@’, the values for a particular column must be within 100-800 range or area code is restricted to a subset of predefined codes etc. These are all examples of integrity constraints defined to ensure the correctness and validity of the data contained in the database. The integrity constraints could also be implemented through pre-insert, pre-update, pre-delete triggers etc on the tables.
The data warehouse used by OLAP tools has large quantities of integrated, normally summarised, historical data which is time-stamped. The data is normally added to the data warehouse on regular frequencies rather than being updated to form an enterprise-wide, integrated repository to support data mining. All the updates to the various transactional systems are incrementally added to the data warehouse to accurately reflect the reality on the date of last extract. In the OLTP system the data has to be absolutely accurate as it is dealing with the operational transactions and it has to respond within timely fashion. Also in OLTP systems the non-current data is archived to reduce storage needs and enhance performance. The time-stamped nature of the data in the warehouse means that the business reality on a defined date can be analysed for strategic purposes without worrying about the performance impact on the transactional systems. The historical data could span a number of years to facilitate trend analysis and to seek correlations. The OLAP tools allow business users to slice and dice data, discover anomalies and drill-down to the root causes. For example, the decline in a brand’s performance could be correlated to the rise of a new launch by a competitor or the decline in advertising expenditure to support the brand or even the changing economic climate. The powerful data mining tools can carry out statistical analysis, use artificial intelligence, neural networks, and machine learning etc to unearth unexpected correlations and anomalies. There is no way such an analysis could have been done in a transactional system as it would not have access to competitor’s information or macroeconomic data. Also the normal star schema of a data warehouse is optimised for analytical processing and, may, hold aggregates. Thus the data duplication in the warehouse is being used to support a different business objective from the one expected of OLTP system. The governance structure around the warehouse ensures accuracy of data on the date of last extract from transactional systems which is incrementally added. Apart from the data extraction overhead, the OLAP system doesn’t impact the OLTP system but allows a wider business objective of data analysis to be achieved. Thus making investment in data warehouse worthwhile, despite the seemingly duplication of data.
Namespaces are a set of names, distinguished from other sets by being identified with a particular URI. It is a mechanism for differentiating elements. The syntax for defining a non-null prefix namespace is
xmlns:prefix:”URI”
This prefix followed by a colon is added to each tag within a vocabulary to make it unique. For example, if the prefix is ‘rdf’ then the elements would be of the form
They are indispensable part of XML documents so a clear appreciation of their role is a pre-requisite for a person embarking on XML/XSL development. The key benefits offered by namespaces are:
The second major feature is the support for graphical editing. There is ‘outline’ view available which allows us to easily navigate through the tree structure by letting us expand and collapse various nodes. Clicking on any node in this outline view takes us to the corresponding element in the XML document. If this were not enough, we can toggle between design and source view in the main editing panel. In the design view, which is a refinement of outline view with content, we can easily edit the contents, whilst the source view lets us rapidly cut and paste appropriate sections. Right click on any node in design or outlook view allows us to add appropriate processing instructions, comments, elements etc.
The IDE automatically synchronises the editing place in these two distinct views to correctly reflect changes. Incidentally, the design view is displayed slightly differently graphically while editing an XML Schema instance. Carrying on the context-relevance theme, it shows sections relevant to defining a schema and their relationships. Right clicking on any of the constituents of these sections brings up a pop-up window for handling the type, ie for an element we may be able to set multiplicity while for a complex data type we may be able to add/remove elements or attributes. Also double clicking on any constituent of a section takes us to see its full definition graphically. All this has the beauty of letting us focus on one aspect type thoroughly. Once we get down to an element we can define constraints in graphic view like maximum length, enumerations etc and see the code appear automatically in the text mode. The only caution I will add is that design and source view can occasionally fall out of sync in an incomprehensible fashion. I particularly recall cutting and pasting a schema in my environment and playing with it. It insisted that a definition of an attribute from original schema were in my schema instance whereas the source view clearly showed that there was no such attribute. I believe this stems from multiple tools working together to harness the full power of XML and they occasionally don’t behave as well as one may expect.
The third impressive feature is the general XML support. We can easily click on format button to auto-indent the elements to improve readability. Or cleanup a document by automatically compressing empty element tags, or inserting required attributes, or inserting missing tags, or adding quotes around attribute values. The validate option can check a document against it schema and check it is well-formed. The refactor option allows a tag to be renamed through out a project to make it more meaningful. The schema definition template automatically refers to the appropriate URI http://www.w3.org/2001/XMLSchema. In fact, the various templates themselves are customisable. An XML document can be created from an existing schema and various options are allowed during creation. Also a catalogue of standard schemas is available. These XML support features can have occasional hiccup. I remember that a reformat of text in text-editor made a valid document against a schema invalid because the reformatting inserted a tag value on newline to make it more readable but it made it invalid against the schema as the content was from an enumeration and it didn’t like these extra whitespaces.
It should be clear that despite the small niggles the synergistic impact of these features makes Eclipse a potent environment for editing XML documents and XML Schema instances. However, it should also be noted that fans of NetBeans will notice that the similar features are available in that tool.
Although lightweight REST architectural style is deemed simpler and leverages existing HTTP protocol with intuitive resource-based URIs for web services and Amazon sees 80% REST and 20% SOAP usage (Anderson,2006), we should adhere to WS-* standards as the trading partners are likely to be using it and expect it. The standardisation, flexibility, reliability, ESB-support and ubiquitous toolkits offering productivity enhancements are compelling argument for SOAP-based services (Simpkins,2009e,p5;Haas,2005). Web services orchestration using process-modelling language, BPEL, require WSDL contract so BPEL cannot be used with Restful services (Simpkins,2009,pp5-6).
A compromise of using both approaches will not be possible for SME as supporting both styles stretches IT skill-base and investment. SOAP solution offers the benefits of large historical investment by standards bodies, tool suppliers, governments and business users and is currently more versatile so recommended despite its need for higher infrastructure investment. The WS-* standards are likely to win in the longrun (Simpkins,2009,p6).
Prescod, P. (2002) Second Generation Web Services [online], O'Reilly Media, Inc., http://webservices.xml.com/pub/a/ws/2002/02/06/rest.html (accessed 3 June 2009)
Simpkins, N. (2009a) ‘Block 3 part 5: Web services messaging with HTTP’, in T320 E-business Technologies: Foundations and Practice, The Open University,