Presentation: Distributed RCPs

SmartTools is SOA, so here is a demo for distributed components. We use remote components, Eclipse RCP (Rich Client Platform) and SmartTools technologies to do this.

This demonstration uses R-OSGi, which is now deprecated in SmartTools. R-OSGi is now replaced by remote DSes, like Simple UDP DS, and it has the same behavior.

The demonstration is made with two virtual machines with VMWare Server. (thanks to VMWare)

Please see after the demo the two CDML files used.

Database CDML

<?xml version="1.0" encoding="ISO-8859-1"?>
<!--                              -->
<!--  Inria.smarttools.examples.planes.database Component Declaration    -->
<!--                              -->
<!-- -->
<component name="inria.smarttools.examples.planes.database"
		type="document"
		extends="logicaldocument"
		ns="inria.smarttools.examples.planes.database"
		doc="Browser Component">
	<containerclass name="DatabaseContainer"/>
	<facadeclass name="DatabaseFacade" userclassname="Database"/>
	<formalism name="database" file="database.absynt"
			dtd="inria/smarttools/examples/planes/database/resources/dtd"/>
	<parser type="xml" classname="DatabaseXMLParser">
		<extention name="database"/>
	</parser>

	<parser type="plain-text" generator="ANTLR" file="database.g"
		classname="DatabaseParser">
		<extention name="database"/>
	</parser>

	<lml name="DEFAULT"
		file="resources:inria/smarttools/examples/planes/database/resources/lml/database-default.lml"/>
	<behavior file="resources:inria/smarttools/examples/planes/database/resources/behaviors/database-behaviors.bhv"/>

	<!--            -->
	<!-- Attributes -->
	<!--            -->

	<!--       -->
	<!-- INPUT -->
	<!--       -->

	<input doc="Make a reservation" method="reserveCorridor" name="reserveCorridor">
		<attribute doc="ID Avion"
				javatype="java.lang.String"
				name="planeID"/>
		<attribute doc="ID Main Client"
				javatype="java.lang.String"
				name="clientID"/>
		<attribute doc="Nombre de places"
				javatype="java.lang.Integer"
				name="howmany"/>
	</input>

	<input doc="Make a reservation" method="reserveWindow" name="reserveWindow">
		<attribute doc="ID Avion"
				javatype="java.lang.String"
				name="planeID"/>
		<attribute doc="ID Main Client"
				javatype="java.lang.String"
				name="clientID"/>
		<attribute doc="Nombre de places"
				javatype="java.lang.Integer"
				name="howmany"/>
	</input>

	<input doc="Creer un avion" method="createPlane" name="createPlane">
		<attribute doc="ID Avion"
				javatype="java.lang.String"
				name="planeID"/>
	</input>

	<input doc="Creer un client" method="createClient" name="createClient">
		<attribute doc="ID Client"
				javatype="java.lang.String"
				name="clientID"/>
	</input>

	<!--        -->
	<!-- OUTPUT -->
	<!--        -->

	<output name="result" method="result" doc="Resultat de la requete" >
		<arg name="originalRequest" doc="Requete originale" javatype="java.lang.String"/>
		<arg name="result" doc="Un booleen ou du texte" javatype="java.lang.String"/>
	</output>

</component>
		

Ticket Office CDML

<?xml version="1.0" encoding="ISO-8859-1"?>
<!--                              -->
<!--  Inria.smarttools.examples.planes.database Component Declaration    -->
<!--                              -->
<!-- -->
<component name="inria.smarttools.examples.planes.ticketoffice"
		type="simple" extends="abstractContainer"
		ns="inria.smarttools.examples.planes.ticketoffice"
		doc="Ticket Office Component">

	<containerclass name="TicketOfficeContainer"/>
	<facadeclass name="TicketOfficeFacade" userclassname="TicketOffice"/>

	<!--            -->
	<!-- Attributes -->
	<!--            -->

	<!--       -->
	<!-- INPUT -->
	<!--       -->

	<input name="result" method="result" doc="Resultat de la requete">
		<attribute name="originalRequest" doc="Requete originale" javatype="java.lang.String"/>
		<attribute name="result" doc="Un booleen ou du texte" javatype="java.lang.String"/>
	</input>

	<!--        -->
	<!-- OUTPUT -->
	<!--        -->

	<output doc="Make a reservation" method="reserveCorridor" name="reserveCorridor">
		<arg doc="ID Avion"
				javatype="java.lang.String"
				name="planeID"/>
		<arg doc="ID Main Client"
				javatype="java.lang.String"
				name="clientID"/>
		<arg doc="Nombre de places"
				javatype="java.lang.Integer"
				name="howmany"/>
	</output>

	<output doc="Make a reservation" method="reserveWindow" name="reserveWindow">
		<arg doc="ID Avion"
				javatype="java.lang.String"
				name="planeID"/>
		<arg doc="ID Main Client"
				javatype="java.lang.String"
				name="clientID"/>
		<arg doc="Nombre de places"
				javatype="java.lang.Integer"
				name="howmany"/>
	</output>

	<output doc="Create client" method="createClient" name="createClient">
		<arg doc="ID Client"
				javatype="java.lang.String"
				name="clientID"/>
	</output>

</component>
		

Last modified: $Date: 2008-08-28 09:21:49 +0200 (Thu, 28 Aug 2008) $