BizTalk Utilities CV ,   Jobs ,   Code library
 
Home Page


Add/Edit your code items
Search the code library
Browse for the code library


JavaScript
HTTP File Commander
XML Ticker
Fading Ticker
How to understand the flow of control in XLST
Begginers, search the Bible
JavaScript Ticker (using Tabular Data Control)
-postfix.aspx>Infix <> Postfix
Nested Tables And Data Island
XML Data Traversal
TrimWhiteSpace
Two Tier Data Islands with Expanding/Collapsing Child elements.
Escape special characters using JavaScript and regular expressions
Sticky Table Headers
Dynamically Filling HTML Select Box from XML Data Island using Javascript.
XML Basics Handbook


 
 

 LAMP >>


By Mark Wilson
I am the creator of TopXML. I am available for international and local (Australia) contracts. I am a Solution Architect/Business Analyst. I have worked in IT in several countries (NZ, Australia, South Africa, UK) building and training teams for government and very large non-governmental organizations. I am ex-Microsoft Consulting Services. I wrote the first book on Microsoft XML published in 2000 called XML Programming with VB and ASP. Most recently I have been building tools for the SEO industry. Ask me for a 37 point SEO health-checkup for your website.
First Posted 07/04/2002
Times viewed 225

x++ beta 0.2 release (includes ISAPI filter/interpreter)


This post contains attachments
v20020704083903.zip 

Summary The beta 0.2 version of x++ comes with a new interpreter: the XppEngFIlt.dll, which is an ISAPI filter x++ interpreter that supports x++ scripting on web servers.

Where can I find detailed information on x++ beta 0.2?
All the documentation of the x++ language, the release notes for beta 0.2, as well as the source code and executables of the x++ interpreter implementations can be found at the x++ site:
http://xplusplus.sourceforge.net/index.htm

What changes have been made to the XppTester.exe (the stand alone x++ interpreter)?
Since x++ (beta 0.1) was released on June 14th 2002, a lot of positive feedback has come in. Many programmers out there have rejoiced to see real programming ability given to XML natively. They have also remarked, among other things, on the simplicity of x++ syntax. In a bid to make x++ syntax even easier to understand, some x++ programmers have sent me suggestions. These suggestions have been built into beta 0.2
1) XppTester has been modified to support the syntax of x++ beta 0.2.
2) In addition, XppTester now displays the XML of the run-time memory, run-time class memory, program and exceptions XML documents in a more readable fashion. This was done to aid in testing x++ programs.

What benefits are there to using XppTester?
XppTester.exe can be run as a stand alone x++ interpreter from Windows or the MS-DOS console. It also gives you the opportunity to examine the output of an x++ program, together with its memory space. This is an useful tool when testing an x++ program. That was in fact why XppTester was built.

XppTester has outgrown its original reason for being because it can be run from the MS-DOS console or invoked by other programs to process x++ programs without being visible to the user. There is also no reason why it cannot be used in a CGI solution.

What is the XppEngFilt.dll?
XppEngFilt.dll is an ISAPI filter that will run with any ISAPI compliant web server, e.g. Microsoft Internet Information Services (IIS). What XppEngFilt does is to monitor the HTTP requests coming to the web server. If any of these requests access a web resource that contains x++ code (e.g. an x++ file, an XML file containing x++ programs, an HTML file containing x++ programs, etc.) then the XppEngFilt processes that x++ code on the web server and places the results into the HTTP response together with the other contents of the web resource. Because of this approach it is possible to embed x++ programs into HTML files, for example. The XppEngFilt will process the x++ programs within the HTML file and return the results of the programs together with the rest of the HTML back to the HTTP client in the HTTP response.

What benefits are there to using XppEngFilt.dll?
XppEngFilt makes it possible to have adaptive XML data in a typical web system with XML data encapsulation in an XML tier. Consider the following example:

A web page has an XML data island which accesses XML data via an URL. In this context the web page with the data island is the XML client and the XML resource being accessed is the XML server. In addition, the web page will typically be used to display the data received, which makes the web page and the data island belong in the presentation layer (or tier). In this model, as presented so far, the XML data being accessed is static. It cannot change itself based on the parameters of the URL or any run-time conditions.

What programmers already are doing to alleviate this static data problem includes the following kind of solution: make the XML data island invoke an ASP page that returns XML. The ASP page will process the URL's parameters and package the XML being returned appropriately into the HTTP response which is sent back to the XML client. The problem with this approach is that the integrity of the XML is violated by the public access of all the nodes in the XML data to the ASP page. This sort of public access is a bad idea given the importance that companies and researchers are placing on XML, as a means of cross-platform data interchange across the internet. In other words, XML data is not merely destined for local communication but for global communication. The XML data may in fact leave its source system and be used elsewhere. In the ASP page example above the XML data is bound to the ASP page tightly, which short-circuits the portability of the XML data. This will work in a quick and dirty solution but is neither robust nor flexible enough for the worldwide use that XML is destined for.

Okay, so what does x++ do to fix this problem? x++ is an XML-based object oriented language that allows you to encapsulate XML data within XML objects! These XML objects are x++ objects. In x++, every XML node is an x++ object and every x++ object is an XML node. In addition, these objects can inherit properties and behaviour from classes. These x++/XML objects provide the needed access and modification security on every node of the XML data. What this means is that the XML can stand on its own in a separate XML tier without requiring the presence of non-XML programs or processes (like the ASP page in the previous example). XppEngFilt enables the URL's arguments to be parsed and used within the x++ programs. These programs will use the parameters to modify the outgoing XML data. The outgoing XML data is placed into the HTTP response and returned back to the XML client (i.e. the XML data island on the web page).

What the model above clearly shows is:
1) The creation of a separate and independent XML tier which allows flexibility in that the XML it the tier can be used with many applications rather than just the one in which it is originally used.
2) The x++ objects fully encapsulate the XML data in XML constructs. What this means is that the XML data, together with the means of access and modification, are contained within XML itself. This has the following benefit: the XML data and its security can be transported together across the internet using HTTP or SOAP! This is clearly impossible with non-XML based solutions (like the ASP page in the example above). This allows for greater flexibility in application development.
3) The data layer and the presentation layer are clearly separated.
4) The XML now has native adaptability and will exhibit adaptive behaviour relative to the XML client. Because the x++ objects offer real behaviour to XML, the XML is no longer static but becomes dynamic and adaptive.

Such a model of application development is not only conceptually superior but is desirable because it gives XML the independent secured tier that it deserves without dependence on non-XML language processes which encumber the entire solution from yielding the inherent portability benefits of XML.

Any questions or comments?
I welcome any questions or comments regarding x++. Please send them via e-mail to Kimanzi_Mati@hotmail.com. As you have read above, x++ is already benefiting from the comments, suggestions and questions sent in by programmers and other readers like you. Feel free to contribute as well.
Licensing
x++ is an open source project licensed under the terms of the GNU Lesser General Public License (LGPL). This means that you can access the source code and also modify it, provided you retain the copyright notices. If you would like to be part of the venture to enhance this brand new language that has already interested many, please e-mail me.
About the attached zip
The download attachment for this article is a .zip file containing the .zip files of the installers for the beta 0.2 XppTester (stand alone x++ interpreter), the beta 0.2 XppEngFilt (ISAPI filter x++ interpreter) and the beta 0.2 XppDemo (demo x++ programs).

Rate this article on a scale of 1 to 10 (0 votes, average 0)

Your vote :  

 LAMP >>





Leave a comment for this article
Your name
Your email (optional)
Your comment
Optional: Upload an attachment
Enter the code shown:

 
 

    Email TopXML