web enable applicarions

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
9 messages Options
Reply | Threaded
Open this post in threaded view
|

web enable applicarions

pdigonzelli
Hi all ,
Today is almost obligatory develop applications which must be 'web
enable'. It means that apps can be used on a browser or can execute
remotely bettween serv and clients using web technologies to do that.
Dolphin does not have native mechanism to do that things.
Are Anyone developing web enable app with Dolphin. What technologies are
sugested to use in that scenary.

TIA
Pablo

PD : Sorry for my english


Reply | Threaded
Open this post in threaded view
|

Re: web enable applicarions

Sean M-4
> Today is almost obligatory develop applications which must be 'web
> enable'. It means that apps can be used on a browser or can execute
> remotely bettween serv and clients using web technologies to do that.
> Dolphin does not have native mechanism to do that things.
> Are Anyone developing web enable app with Dolphin. What technologies are
> sugested to use in that scenary.

You can use Steve Waring SPRAY toolkit to develop web services.

You can use Swazoo to develop a web application.

You can use FastCGI to connect Apache to a Dolphin server.

I've knocked together an SCGI server, which serves the same purpose as
FastCGI.

Soon you will be able to develop web apps in Seaside for Dolphin.

I believe Dolphin 6 is even going to include some sample Swazoo web
applications.




In terms of architecture, this is how I will be deploying a web app I'm
currently building:

Multiple single threaded images (Meaning they don't fork socket connections.
Each image handles one connection at a time, only)

Each image has a single database connection.

Then a load balancer to distribute requests between the images.

Saves the headache of sharing db connections/other resources between
multiple processes. It also means I can leave the concurrency issues to the
database.


Reply | Threaded
Open this post in threaded view
|

Re: web enable applicarions

Esteban A. Maringolo-3
In reply to this post by pdigonzelli
Pablo Digonzelli escribió:
 > Hi all ,
 > Today is almost obligatory develop applications which must be 'web
 > enable'. It means that apps can be used on a browser or can execute
 > remotely bettween serv and clients using web technologies to do that.
 > Dolphin does not have native mechanism to do that things.
 > Are Anyone developing web enable app with Dolphin. What
technologies are
 > sugested to use in that scenary.

Pablo:

To develop web "enabled" applications in Dolphin,
you can use the Smalltalk Web server Swazoo, available at:

<http://www.dolphinharbor.org/dh/projects/swazoo/download.html>

It is a "native mechanism" (whatever it means), swazoo is a well
designed
web server entirely written in Smalltalk (and available for other
smalltalk
dialects also).

For a nice example of what can be done using Dolphin to serve web
requests
you can point your browser to:
<http://www.gorisek.com/WikiDoc/WikiPage>

Best regards,

--
Esteban.


Reply | Threaded
Open this post in threaded view
|

Re: web enable applicarions

Esteban A. Maringolo-3
In reply to this post by Sean M-4
Sean M escribió:

> In terms of architecture, this is how I will be deploying a web app I'm
> currently building:

> Multiple single threaded images (Meaning they don't fork socket connections.
> Each image handles one connection at a time, only)
> Each image has a single database connection.
> Then a load balancer to distribute requests between the images.

> Saves the headache of sharing db connections/other resources between
> multiple processes.
 > It also means I can leave the concurrency issues to the  database.

¿How this scale when you have 30 concurrent users?
Perhaps adding more CPU and RAM solves the problem...

Best regards.

--
Esteban.


Reply | Threaded
Open this post in threaded view
|

Re: web enable applicarions

Sean M-4
>> Saves the headache of sharing db connections/other resources between
>> multiple processes. It also means I can leave the concurrency issues to
>> the  database.
>
> ¿How this scale when you have 30 concurrent users?
> Perhaps adding more CPU and RAM solves the problem...

I don't know.

I would _imagine_ that yes, throwing more hardware at it, and just running
more images on more servers would allow you to scale it easily. Provided
you're not trying to do lots of fancy session state, ie: Persist session
data to a database or something at the end of a request.


pax
Reply | Threaded
Open this post in threaded view
|

Re: web enable applicarions

pax
In reply to this post by Sean M-4
Sean,

we seem to be on a similar development track regarding Dolphin client
apps and the deployment of a Dolphin server. How are you handling
security (Digital Signatures and User Authentication)? Just curious
about your approach concerning these two beasties. If you can't discuss
such solutions in public, feel free to email me.

When it comes to the server side, I will be changing out my database
system for ReStore. At present, each service on the server has its own
persistence manager that handles database transactions. It works, but
ReStore will do a much better job. Also means I don't have to craft
handwritten code for all CRUD transactions.

Pax


Reply | Threaded
Open this post in threaded view
|

Re: web enable applicarions

Sean M-4
> we seem to be on a similar development track regarding Dolphin client
> apps and the deployment of a Dolphin server. How are you handling
> security (Digital Signatures and User Authentication)? Just curious
> about your approach concerning these two beasties. If you can't discuss
> such solutions in public, feel free to email me.

User auth, I haven't even thought about that. How I will do it: HTTPS +
Basic authentication.

Won't be worrying about client signatures etc. The stuff I'm doing doesn't
call for extreme security measures.

> When it comes to the server side, I will be changing out my database
> system for ReStore. At present, each service on the server has its own
> persistence manager that handles database transactions. It works, but
> ReStore will do a much better job. Also means I don't have to craft
> handwritten code for all CRUD transactions.

Yeah I'm using ReStore too :)


pax
Reply | Threaded
Open this post in threaded view
|

Re: web enable applicarions

pax
> Yeah I'm using ReStore too :)

Kewl, not that it's critical but what size executables have you seen
with your server using ReStore? Right now I'm seeing 690k for my server
image. The customers are just baffled by this small size not to mention
the size of client applications being small as well. I'm thinking that
after I remove my server-side database system, the image will trim down
somewhat.

I'm betting that transaction performance will also benefit from
ReStore. From what I hear and have read, ReStore rocks!


Pax


Reply | Threaded
Open this post in threaded view
|

Re: web enable applicarions

Sean Malloy-12
> Kewl, not that it's critical but what size executables have you seen
> with your server using ReStore? Right now I'm seeing 690k for my server
> image. The customers are just baffled by this small size not to mention
> the size of client applications being small as well. I'm thinking that
> after I remove my server-side database system, the image will trim down
> somewhat.

I'm not stripping down to .exe's. I'm running full images. Keeping in mind
these images are not for public consumption. I'm not building web apps for
customers. Unless you consider me the customer!

I might be breaking the OA license agreement with regards to
redistributables, but I don't think so. I basically have full development
images running, but I have created a Smaller "Server" image, which only
contains the CHB and the Debugger.

> I'm betting that transaction performance will also benefit from
> ReStore. From what I hear and have read, ReStore rocks!

The only issue I have with ReStore is inserting a new object into a
collection results in pulling back the whole collection. Bruno posted one
solution which meant writing actual SQL which sort of defeats the purpose of
ReStore. Also writing your own SQL opens you up to having more to maintain
if you change any of your class definition code.. But I guess that's the
price to pay until John releases the next version!