<?xml version="1.0" encoding="UTF-8"?> 






	


<rss version="2.0"  
		xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
		xmlns:dc="http://purl.org/dc/elements/1.1/"
		xmlns:content="http://purl.org/rss/1.0/modules/content/"
		xmlns:rss="http://backend.userland.com/rss2">
	<channel>

	
		<title>Focus on WGA</title>
		
		<link>http://www.innovationgate.com/igweblogs/html/default/focusonwga.int.html</link> 
		<description>Neue und unbekanntere Features von Webgate Anywhere</description>
		<copyright>Innovation Gate GmbH</copyright>
		<generator>WebGate Anywhere</generator>
		
		
		
		<lastBuildDate>26 Mar 2010 22:40:42 GMT</lastBuildDate>

	
	
	
		
		<item>
			<guid isPermaLink="false">8a85818b2705e8ca01270b1cbc440ede</guid>
			<title>Kurzformen f&#252;r WebTML-Includes</title>
			<link>http://www.innovationgate.com/igweblogs/html/default/8a85818b2705e8ca01270b1cbc440ede.int.html</link>
			<description>
				<![CDATA[				
				
				Nach langer Zeit mal wieder ein weiterer WGA-Tip, derer es uns mitnichten mangelt (allein, die Zeit fehlt oft um sie in Textform zu giessen):<br><br>Der Tag &lt;tml:<a title="" target="_blank" class="wga-urltype-exturl" href="http://dev.innovationgate.de/doc-wga41/html/default/dr.webtml.include-de.html">include</a>&gt; ist der Haupt-Aufhängepunkt für Modularität in WebTML. Dank seiner Einbinde-Funktionalität können wir bestimmte WebTML-Bereiche in eigene Module verpacken die wir dann an den geeigneten Stellen aufrufen. Diese Module parametrisieren wir dann über WebTML-Optionen, welche das Verhalten des Modulcodes steuern, die Namen von zu verwendenden Items übergeben, Codestrecken zum Einbau übergeben usw.<br><br>Treibt man dieses Konzept konsequent fort, so wie wir das selbst in unserer internen WGA-Anwendungsentwicklung tun, so kann man schon einmal zu der Eindruck gelangen, dass über die übliche Include-Syntax sehr wenig Funktionalität über sehr viel Code angesteuert wird. So rufen wir in folgendem Beispiel lediglich ein Modul mit zwei Parametern und einem "Body" auf:<br><div class="code">&lt;tml:include ref="treeview"&gt;<br>&nbsp; &lt;tml:option name="loaderurl"&gt;&lt;tml:url type="tml" layout="::get-file-data"/&gt;&lt;/tml:option&gt;<br>&nbsp; &lt;tml:option name="title"&gt;Root&lt;/tml:option&gt;<br>&nbsp; &lt;tml:option name="body"&gt;<br>&nbsp;&nbsp;&nbsp; ... some WebTML-Code ...<br>&nbsp; &lt;/tml:option&gt;<br>&lt;/tml:include&gt;</div><br>Um dieses Problem zu adressieren haben wir mit WGA 4.1 eine Reihe von Abkürzungs-Möglichkeiten eingeführt die man je nach Geschmack einsetzen kann.<br>

									
					<br>
					<a href="/igweblogs/html/default/8a85818b2705e8ca01270b1cbc440ede.int.html"><strong>more ...</strong></a>
				
				]]>
			</description>
			<pubDate>26 Feb 2010 16:29:44 GMT</pubDate>
			<dc:creator>cn=Oliver Weise,ou=users,dc=innovationgate,dc=de</dc:creator>			
		</item>
		
			
		
	
		
		<item>
			<guid isPermaLink="false">8a85818b25ff568701260ec4f2552b20</guid>
			<title>Angabe eines &#34;Favicons&#34; f&#252;r eine WGA-Site</title>
			<link>http://www.innovationgate.com/igweblogs/html/default/8a85818b25ff568701260ec4f2552b20.int.html</link>
			<description>
				<![CDATA[				
				
				Favicons, das sind diese kleinen Grafiken die im Browser zu vielen Webseiten angezeigt werden, meistens direkt vor der URL im Adressfeld. Unten z.B. das Favicon von Google:<br><br><img src="http://www.innovationgate.com/igweblogs/file/8a85818b25ff568701260ec4f2552b20.de.0/google_favicon.png" alt="" title="" class="wga-urltype-intfile" border="0" align="bottom"><br><br>Zugegeben, es gibt wichtigere Funktionen zu Websites. Dennoch komplettiert dieses Icon den "Gesamteindruck" einer kommerziellen Site. Oder umgekehrt: Man erwartet hier einfach inzwischen ein aussagekräftiges Logo zum Betreiber eines Webauftritts, da man es von vielen anderen Sites her bereits kennt.<br><br>Technisch handelt es sich beim Favicon um ein sehr simples Konzept: Der Browser versucht eine Ressource namens "favicon.ico" ohne sonstige Pfad vom Server zu laden. Findet er eine solche, so wird sie angezeigt.<br><br>Und hier stellt sich ein Problem für alle Sites, auf welchen WGA ohne Kontextpfad installiert ist, wo WGA also ausnahmslos alle eingehenden Anfragen des J2EE-Servers verarbeitet. Der Pfad zur favicon-Ressource entspricht keiner üblichen WGA-Ressource und kann auch nicht mit einer solchen belegt werden. Daher gibt WGA eine Fehlermeldung an den Browser zurück der daraufhin die Site ohne Icon anzeigt.<br><br>Zwar ist es auch möglich, ein Favicon per &lt;rel&gt;-Tag im HTML-Code einer Webseite selbst zu addressieren. Hier gibt es jedoch Unterschiede darin wie verschiedene Browser diese Daten benötigen, ausserdem ist dies nicht wirklich ein globaler Ansatz für die gesamte Site. Eine andere Möglichkeit ist es, dieses Favicon über "Rewrite"-Funktionalitäten eines vorgelagerten HTTP-Servers anzubieten, was jedoch auch nicht wirklich eine elegant zu nennen ist, insbesondere wenn ansonsten kein HTTP-Server benötigt wird.<br><br>Daher besitzt WGA seit Version 4.0.4 selbst eine dedizierte - und bislang wahrscheinlich kaum bekannte - Funktion zum Thema Favicon.<br>

									
					<br>
					<a href="/igweblogs/html/default/8a85818b25ff568701260ec4f2552b20.int.html"><strong>more ...</strong></a>
				
				]]>
			</description>
			<pubDate>8 Jan 2010 16:29:33 GMT</pubDate>
			<dc:creator>cn=Oliver Weise,ou=users,dc=innovationgate,dc=de</dc:creator>			
		</item>
		
			
		
	
		
		<item>
			<guid isPermaLink="false">8a85818b24c00d0401257dd2db7970d4</guid>
			<title>Eine Einf&#252;hrung in die WebTML-Formularvalidierung</title>
			<link>http://www.innovationgate.com/igweblogs/html/default/8a85818b24c00d0401257dd2db7970d4.int.html</link>
			<description>
				<![CDATA[				
				
				Wir haben ein simples WebTML-Formular um ein Benutzerprofil zu befüllen. Es besitzt vier Felder: Ein Textfeld, ein numerisches Feld sowie zwei Datumsfelder:<br><div class="code">&lt;tml:form id="theForm" source="profile"&gt;<br><br>&nbsp;&nbsp;&nbsp; Name: &lt;tml:input type="text" name="name"/&gt;&lt;br&gt;<br><br>&nbsp;&nbsp;&nbsp; Personal-Nr.: &lt;tml:input type="number" name="persnr" format="0"/&gt;&lt;br&gt;<br><br>&nbsp;&nbsp;&nbsp; Dienstantritt: &lt;tml:input type="date" name="start" format="dd.MM.yyyy"/&gt;&lt;br&gt;<br>&nbsp; &nbsp;&nbsp;&nbsp; <br>&nbsp; &nbsp; Dienstende: &lt;tml:input&nbsp; type="date" name="end" format="dd.MM.yyyy"/&gt;&lt;br&gt;<br><br>&nbsp;&nbsp;&nbsp; &lt;tml:button clickaction="$store"&gt;Speichern&lt;/tml:button&gt;<br><br>&lt;/tml:form&gt;</div>
<br>Bevor die Daten dieses Formulars irgendwo gespeichert werden möchten wir einige Bedingungen für die Daten sicherstellen:<br><ul><li>Wir möchten dass immer ein Name eingegeben wurde.<br></li><li>Dasselbe wollen wir auch für die Personalnummer, die darüber hinaus natürlich numerisch sein soll</li><li>Wir möchten naturgemäß dass ein Dienstantritts-Datum vor dem Dienstende-Datum liegt<br></li></ul>Solange dies nicht erfüllt ist wollen wir die Speicherung verweigern.<br><br>Nun stellt sich die Frage der Realisierung. Natürlich können wir diese Validierungen manuell in TMLScript programmieren, und zwar bevor wir ebenfalls per TMLScript die Formulardaten speichern. WebTML-Formulare verfügen jedoch über eigene, dedizierte Validierungsfunktionen die in vielen Belangen praktischer sind als der manuelle Weg.<br>

									
					<br>
					<a href="/igweblogs/html/default/8a85818b24c00d0401257dd2db7970d4.int.html"><strong>more ...</strong></a>
				
				]]>
			</description>
			<pubDate>11 Dec 2009 12:59:48 GMT</pubDate>
			<dc:creator>cn=Oliver Weise,ou=users,dc=innovationgate,dc=de</dc:creator>			
		</item>
		
			
		
	
		
		<item>
			<guid isPermaLink="false">8a85818b24c00d04012535bb83e51621</guid>
			<title>Die &#34;Switch&#34;-Variante von tml:select</title>
			<link>http://www.innovationgate.com/igweblogs/html/default/8a85818b24c00d04012535bb83e51621.int.html</link>
			<description>
				<![CDATA[				
				
				Mit dem Tag <b>&lt;tml:<a title="" target="_blank" class="wga-urltype-exturl" href="http://dev.innovationgate.de/doc-wga41/html/default/dr.webtml.select-de.html">select</a>&gt;</b> können eine Reihe von Konditionen getestet werden, von denen (in der Regel) nur der erste "Treffer" zu einer Aktion führen soll. Einzelne Konditionen und ihre zugehörigen Aktionen werden in &lt;tml:<a title="" target="_blank" class="wga-urltype-exturl" href="http://dev.innovationgate.de/doc-wga41/html/default/dr.webtml.case-de.html">case</a>&gt;-Tags definiert:<br><div class="code"><b>&lt;tml:select&gt;</b><br>&nbsp;&nbsp; &lt;tml:case condition="val == 1"&gt;<br>&nbsp;&nbsp; ...<br>&nbsp;&nbsp; &lt;/tml:case&gt;<br>&nbsp;&nbsp; &lt;tml:case condition="val == 2"&gt;<br>&nbsp;&nbsp; ...<br>&nbsp;&nbsp; &lt;/tml:case&gt;<br>&nbsp;&nbsp; &lt;tml:caseelse&gt;<br>&nbsp;&nbsp; ...<br>&nbsp;&nbsp; &lt;/tml:caseelse&gt;<br><b>&lt;/tml:select&gt;</b></div><br>Wer &lt;tml:case&gt; nur ohne &lt;tml:select&gt; kennt wird sich hier vielleicht wundern was der Unterschied ist. Das umliegende &lt;tml:select&gt; sorgt dafür dass:<br><ul><li>Nur der erste &lt;tml:case&gt; ausgeführt wird dessen Kondition erfüllt ist. Weitere &lt;tml:case&gt;-Tags werden nicht angerührt, egal ob ihre Kondition erfüllt wäre oder nicht (es sei denn dies sei durch Attribut <a title="" target="_blank" class="wga-urltype-exturl" href="http://dev.innovationgate.de/doc-wga41/html/default/dr.webtml.select.testall-de.html">testall</a>="true" explizit erwünscht)<br></li><li>Der optionale Tag &lt;tml:caseelse&gt; ausgeführt wird falls keine Kondition zuvor erfüllt war.</li></ul>Oftmals wird in so einem Konstrukt der Wert irgendeines Feldes überprüft und abhängig davon irgendeine spezielle Aktion ausgeführt. Ist das zu überprüfende Feld immer dasselbe so ist die ständige Wiederholung des Feldnamens und des Vergleichs-Operators nicht nur mühsam. Sie ist ebenso fehlerträchtig sowie wartungsunfreundlich. Ändert sich der zu prüfende Feldname so muss man jede einzelne Kondition anfassen.<br><br>Für diese Fälle der Verwendung von &lt;tml:select&gt; gibt es seit WGA 4.1eine syntaktische Vereinfachung: Das Attribut "<a title="" target="_blank" class="wga-urltype-exturl" href="http://dev.innovationgate.de/doc-wga41/html/default/dr.webtml.select.switch-de.html">switch</a>":<br>

									
					<br>
					<a href="/igweblogs/html/default/8a85818b24c00d04012535bb83e51621.int.html"><strong>more ...</strong></a>
				
				]]>
			</description>
			<pubDate>27 Nov 2009 13:01:39 GMT</pubDate>
			<dc:creator>cn=Oliver Weise,ou=users,dc=innovationgate,dc=de</dc:creator>			
		</item>
		
			
		
	
		
		<item>
			<guid isPermaLink="false">8a85818b24c00d040124ec93a65e5ff8</guid>
			<title>&#220;berfl&#252;ssige Benutzerprofile vermeiden mit Agent Exclusions</title>
			<link>http://www.innovationgate.com/igweblogs/html/default/8a85818b24c00d040124ec93a65e5ff8.int.html</link>
			<description>
				<![CDATA[				
				
				Wer die WGA Personalisierung im "automatischen" Modus auf einer öffentlichen Website einsetzt, dem wird vielleicht aufgefallen sein dass in seiner Personalisierungsdatenbank sehr viele Benutzerprofile erzeugt werden. Sie sehen dies z.B. anhand der Anzahl der Datensätze in Tabelle "USERPROFILES" (wenn sie eine relationale Datenbank benutzen). Vielleich bemerken sie dann auch, dass die Zahl dieser Profile tatsächlich sehr viel höher als die vermutete Zahl echter Website-Benutzer ist und darüber hinaus kontinuierlich wächst.<br><br>Die Ursache für die hohe Zahl sind höchstwahrscheinlich keine echten Browser-Besuche sondern die so genannten "Bots" von Internet-Suchmaschinen die ihre Site in regelmäßigen Abständen besuchen. Diese automatisierten Prozesse rufen turnusmäßig Webseiten quer über das Internet ab und werten ihre Inhalte aus um sie in der Suchmaschinen-Datenbank zu indizieren und letztlich als Suchergebnisse anzubieten. <br><br>Anders als für normale Benutzer wird in der Regel für jeden Besuch eines Bots ein separates Benutzerprofil angelegt, das fortan nicht mehr angerührt wird und als "Datenleiche" in ihrer Personalisierungsdatenbank rumliegt. Warum ist das so und wie kann man es vermeiden?<br>

									
					<br>
					<a href="/igweblogs/html/default/8a85818b24c00d040124ec93a65e5ff8.int.html"><strong>more ...</strong></a>
				
				]]>
			</description>
			<pubDate>13 Nov 2009 08:05:49 GMT</pubDate>
			<dc:creator>cn=Oliver Weise,ou=users,dc=innovationgate,dc=de</dc:creator>			
		</item>
		
			
		
	
		
		<item>
			<guid isPermaLink="false">8a85818b2410a605012423a422072dca</guid>
			<title>Tool-Funktionen in WebTML</title>
			<link>http://www.innovationgate.com/igweblogs/html/default/8a85818b2410a605012423a422072dca.int.html</link>
			<description>
				<![CDATA[				
				
				Es gibt typische Operationen in WebTML die immer wieder benötigt werden: Testen ob Items leer oder gefüllt sind, ob Variablen definiert sind, ob sie "true" oder "false" sind. WebTML bietet für diese Operationen Tool-Funktionen an, die mehrere Vorteile gegenüber einer manuellen Programmierung bieten, und deswegen bevorzugt verwendet werden sollten:<br><ul><li>Sie sind "sprechender"</li><li>Sie fassen mehrteilige Operationen komfortabel zusammen</li><li>Sie funktionieren auf allen WGA Content Stores und unter allen WGA-Kompatibilitätseinstellungen (falls z.B..ein Design das Verhalten von WGA 3.3 benötigt)</li><li>Sie besitzen teilweise gewisse optimierte Verhaltensweisen <br></li></ul>


									
					<br>
					<a href="/igweblogs/html/default/8a85818b2410a605012423a422072dca.int.html"><strong>more ...</strong></a>
				
				]]>
			</description>
			<pubDate>5 Oct 2009 07:40:09 GMT</pubDate>
			<dc:creator>cn=Oliver Weise,ou=users,dc=innovationgate,dc=de</dc:creator>			
		</item>
		
			
		
	
		
		<item>
			<guid isPermaLink="false">8a85818b2383ef5b01238577579d0207</guid>
			<title>WGA-Server per JMX &#252;berwachen</title>
			<link>http://www.innovationgate.com/igweblogs/html/default/8a85818b2383ef5b01238577579d0207.int.html</link>
			<description>
				<![CDATA[				
				
				Das Kürzel JMX steht für "Java Management Extensions". Kurz beschrieben handelt es sich bei JMX um eine in die Java-Plattform integrierte Funktionalität, mit welcher Java-Programme sowie die Java-Plattform selbst Metriken über ihre&nbsp; "Gesundheit" liefern können. Diese können dann, eventuell sogar über das Netzwerk, mit geeigneten Tools ausgelesen und somit ausgewertet werden.<br><br>JMX ist für WGA-Administratoren in doppelter Hinsicht interessant:<br><br><ul><li>WGA liefert über JMX spezifische Laufzeit-Informationen, insbesondere über den Zustand der für die Verbindungen zu relationalen Datenbanken verwendeten Verbindungs-Pools</li><li>Die Java-Laufzeit selbst gibt eine Vielzahl von Daten aus, die für die Optimierung der Performance des Systems verwendet werden können</li></ul><br>Da zu kommt dass ein Java-Server Im Problemfall, in welchem eine Website eventuell nicht mehr reagiert, oft immernoch per JMX erreichbar ist und darüber wichtige Informationen über die Ursache des Problems liefern kann.<br>

									
					<br>
					<a href="/igweblogs/html/default/8a85818b2383ef5b01238577579d0207.int.html"><strong>more ...</strong></a>
				
				]]>
			</description>
			<pubDate>4 Sep 2009 14:31:14 GMT</pubDate>
			<dc:creator>cn=Oliver Weise,ou=users,dc=innovationgate,dc=de</dc:creator>			
		</item>
		
			
		
	
		
		<item>
			<guid isPermaLink="false">8a85818b23272ccb01234b4b174852f3</guid>
			<title>POST-Requests ohne WebTML-Form verarbeiten</title>
			<link>http://www.innovationgate.com/igweblogs/html/default/8a85818b23272ccb01234b4b174852f3.int.html</link>
			<description>
				<![CDATA[				
				
				Im Web werden per Browser erfasste Formulardaten in der Regel über einen so genannten POST-Request zum Server geschickt. Im Unterschied zum GET-Request, über den normalerweise Webseiten angefordert werden, kann der Browser im POST-Request zusätzliche Daten an die Zieladresse des Requests schicken, so wie in diesem Fall halt der Inhalt eines Webseiten-Formulars.<br><br>Nun werden in WGA Web-Formulare normalerweise als <a title="" target="_blank" class="wga-urltype-exturl" href="http://dev.innovationgate.de/doc-wga41/html/default/dg.compendium.design.tml.forms-de.html">WebTML-Formulare</a> realisiert. Deswegen erwartet WGA bei POST-Requests, dass diese in der Regel Daten zu WebTML-Formularen enthalten. In diesem Fall stehen diese Daten dann in Form des TMLScript-Objektes "tmlform" auf dem Server zur Verfügung.<br><br>Was aber, wenn WGA einmal Formulare verarbeiten soll, welche von einer anderen Quelle stammen, z.B. von einer anderen externen Webseite mit einem normalen HTML-Formular oder von einem ganz anderen externen Programm, welches kein Browser ist?<br>

									
					<br>
					<a href="/igweblogs/html/default/8a85818b23272ccb01234b4b174852f3.int.html"><strong>more ...</strong></a>
				
				]]>
			</description>
			<pubDate>24 Aug 2009 07:24:55 GMT</pubDate>
			<dc:creator>cn=Oliver Weise,ou=users,dc=innovationgate,dc=de</dc:creator>			
		</item>
		
			
		
	
		
		<item>
			<guid isPermaLink="false">8a85818b21cac1fd0122acaef6d94eb5</guid>
			<title>WebTML-Formulare mit &#34;Enter-Submit&#34;</title>
			<link>http://www.innovationgate.com/igweblogs/html/default/8a85818b21cac1fd0122acaef6d94eb5.int.html</link>
			<description>
				<![CDATA[				
				
				Auf vielen Webseiten gibt es diese "Ein-Feld-Suchfunktionen": Ein einzelnes Eingabefeld links/rechts/über der Seite in welches ein Suchbegriff eingegeben werden kann. Eine Schaltfläche "Suchen" o.ä. gibt es auch daneben, aber meistens kann man im Suchfeld einfach "Enter" drücken und die Suche ist unterwegs. Warum eigentlich?<br><br>Weil dies eine Spezialfunktion vieler Browser ist. Erfüllt ein HTML-Formular folgende Voraussetzungen:<br><ul><li>Es besitzt nur ein Eingabefeld</li><li>Es besitzt eine "Submit"-Schaltfläche für das Abschicken des Formularinhaltes</li></ul>so bieten Browser die Funktion an, bei Drücken der Entertaste während der Cursor im Eingabeld ist die Suche abzuschicken.<br><br>Dieser Artikel beschäftigt sich mit einer neuen Möglichkeit, dies in WGA für WebTML-Formulare zu erzielen.<br>

									
					<br>
					<a href="/igweblogs/html/default/8a85818b21cac1fd0122acaef6d94eb5.int.html"><strong>more ...</strong></a>
				
				]]>
			</description>
			<pubDate>24 Jul 2009 12:14:23 GMT</pubDate>
			<dc:creator>cn=Oliver Weise,ou=users,dc=innovationgate,dc=de</dc:creator>			
		</item>
		
			
		
	
		
		<item>
			<guid isPermaLink="false">8a85818b21cac1fd012273451a31590f</guid>
			<title>Reduzieren der Serverlast mit &#34;Sync-Throttling&#34;</title>
			<link>http://www.innovationgate.com/igweblogs/html/default/8a85818b21cac1fd012273451a31590f.int.html</link>
			<description>
				<![CDATA[				
				
				Wenn sie Designverzeichnisse verwenden um ihre WGA Designs im Datei-System zu pflegen dann durchsucht WGA diese Verzeichnisse und ihre Inhalte periodisch nach Änderungen, die in das WGA-System einsynchronisiert werden müssen.<br><br>Je nachdem wie viele Designverzeichnisse sie auf ihrem Server eingebunden haben bzw. wie viele Dateien dort enthalten sind, ist dieser Prozess sehr aufwendig und führt zu einem permanenten "Hintergrundrauschen" an Prozessor- und Festplatten-Last. Dies kann insgesamt auch die Server-Performance negativ beeinflussen.<br><br>Zudem ist die Überwachung vieler Design-Verzeichnisse ja über die meiste Zeit hinweg überflüssig, da nicht permanent an ihnen gearbeitet wird. Könnte WGA merken, wenn ein bestimmtes Design-Verzeichniss aktuell nicht modifiziert wird, so könnte es die Frequenz der Änderungssuche drosseln und damit auch die Serverlast reduzieren.<br><br>Genau dies kann mit der Aktivierung des "Sync-Throttlings" erzielt werden.<br>

									
					<br>
					<a href="/igweblogs/html/default/8a85818b21cac1fd012273451a31590f.int.html"><strong>more ...</strong></a>
				
				]]>
			</description>
			<pubDate>13 Jul 2009 08:40:24 GMT</pubDate>
			<dc:creator>cn=Oliver Weise,ou=users,dc=innovationgate,dc=de</dc:creator>			
		</item>
		
			
		
	
	
	</channel>
</rss>