> Of course, the sad reality is that our industry loves to just syntactically
> masturbate with different languages and pretend that we're much better for
> it when the reality is that basically nothing has changed in 30 years in
> terms of how we actually solve problems.
>

I get this as iTunes, Google and Twitter could have well been built using
Pascal (the language...)


>
> On Nov 15, 2010, at 8:50 PM, Ian Joyner wrote:
>
> > I agree with this too. Problem or fixed complexity must be dealt with
> somewhere in the system, and arguments often abound as to where that should
> be done (almost always without people recognizing that fact). I wrote on
> that recently too:
> >
> > http://www.ianjoyner.name/Ian_Joyner/Complexity.html
> >
> > so am in vehement agreement.
> >
> > It's always a problem getting something to run quickly, like Twitter, to
> see if it succeeds or fails, before committing significant resources, and
> then like Twitter maybe rewriting your message queues in Scala for speed.
> (Something done by WO, I think?)
> >
> > But getting something quickly done in WO, might be a problem. Pascal's
> words about "learning cliff" still ring in my ears ;-)
> >
> > Ian
> >
> > On 16 Nov 2010, at 12:20, Mike Schrag wrote:
> >
> >> I think you also have to weigh the dramatically more complex security
> and protocol required to handle state on the client. You get a huge amount
> for free with WO in terms of state transition management that you have to
> build yourself if you use almost any other system. You also get a large
> amount for free with WO with respect to security because you can count on
> "that you called this action means you were allowed to see this action,"
> whereas a traditional restful system requires security enforcement for every
> action. Also consider that your site isn't iTunes, Google, or Twitter. Most
> applications don't have to scale all that much, and almost certainly are
> within the realm of a few servers and dumping ram into your box.
> >>
> >> I also don't care what tools and frameworks you built your system with.
> If you DO become iTunes, Google, or Twitter, your app won't scale. Period.
> I've never seen a system that scales without investing substantial
> engineering effort in profiling and rearchitecture after deployment. If you
> built your app with rest, all you're doing is shifting your load in other
> ways. Like Chuck said, you get a lot of caching for free with WO that you
> have to figure out how to get back with stateless architectures. And the
> most common method? Shared object caches -- Memcached, Coherence, etc.
> WO/EOF essentially has this architecture (on the persistence side), but with
> local caches in the snapshot cache that serve whatever sessions you send to
> it. With a little bit of work with sharding your users, you can take
> advantage of that by routing users to appropriate instances.
> >>
> >> The moral of the story is that every technology sucks, so you might as
> well just build it fast so it can suck in production faster and you can move
> on with your life.
> >>
> >> ms
> >>
> >> On Nov 15, 2010, at 8:02 PM, Chuck Hill wrote:
> >>
> >>>
> >>> On Nov 15, 2010, at 4:53 PM, Ian Joyner wrote:
> >>>
> >>>> On 16 Nov 2010, at 11:35, David LeBer wrote:
> >>>>
> >>>>>
> >>>>> On 2010-11-15, at 7:09 PM, Ian Joyner wrote:
> >>>>>
> >>>>>> (Not that I'm doing any WO these days, but I still like to follow.)
> >>>>>>
> >>>>>> One thing that has always worried me about scalability is keeping
> the per user "application state" on the server in WOSession. Knowing more
> about REST now, this is very unrestful and not stateless, which means will
> not scale.
> >>>>>
> >>>>> I don't see why something being unrestful and not stateless
> automatically equates to not being able to scale. Perhaps you could explain.
> >>>>
> >>>> The problem is that once you get 1000s and millions of users you have
> the problem of memory size storing all that session information in memory on
> the server.
> >>>
> >>> As with any system, the number of concurrent users that can be handled
> on a given server depends on both the application and the technology that it
> is built on.  I will grant you that WO probably uses more memory per user
> than many technologies.  But memory usage is only one part of the equation.
> >>>
> >>>
> >>>> Server must also manage all these sessions - clean them out every so
> often. And (in middleware systems I worked on in the 80s) keep track of
> state transitions with FSMs, etc.
> >>>>
> >>>> Yes you need session state, ie context, but it should be kept on the
> client, which sends it along with each request. Thus user state is kept only
> on the client which makes recoverability easier too, because if the server
> is rebooted, client can continue oblivious to any problem.
> >>>
> >>> Yes, recoverability is a nice to have feature, but really how often is
> it actually needed?  Restarts should be planned with the instances being set
> to Refuse New Sessions so that there are no active sessions on a machine
> when it is rebooted.  So recoverability is only strictly needed for
> accidental restarts, kernel panics and such.
> >>>
> >>> The problem with keeping the WO state on the client is that WO keeps a
> LOT of state (EO, changed attributes, page cache, etc).  You would need to
> have a finely tuned way of getting that back and forth from the client,
> otherwise performance would suffer mightily.
> >>>
> >>> Chuck
> >>>
> >>>
> >>>
> >>>
> >>>>>
> >>>>>> How is this problem dealt with these days? WOnder?
> >>>>>>
> >>>>>> Thanks
> >>>>>> Ian
> >>>>>>
> >>>>>> On 16 Nov 2010, at 03:43, Greg Lappen wrote:
> >>>>>>
> >>>>>>> Hi everyone,
> >>>>>>>
> >>>>>>> Based on using WO for the last 7 years, I have observed a couple of
> things that seem to be a performance bottleneck in WebObjects.  I know that
> Apple uses WebObjects on a large scale for iTunes and ecommerce, so there
> must be solutions to these.
> >>>>>>>
> >>>>>>> #1 - Only one thread can be processing at once.  I seem to recall
> that this is a limit in EnterpriseObjects but it's been a while.
> >>>>>>>
> >>>>>>> #2 - EnterpriseObjects caches every object from the database.
> >>>>>>>
> >>>>>>> With that being said, how can you horizontally scale your
> application layer?  If you setup more instances of your app, they each have
> their own caches, which will be out of sync with each other.  Is there a
> commonly used framework for doing distributed cache management?  And is it
> possible to make your applications multithreaded so page requests can be
> processed concurrently?
> >>>>>>>
> >>>>>>> Thanks!
> >>>>>>>
> >>>>>>> Greg
> >>>>>>> _______________________________________________
> >>>>>>> Do not post admin requests to the list. They will be ignored.
> >>>>>>> Webobjects-dev mailing list      (Webobjects-dev@lists.apple.com)
> >>>>>>> Help/Unsubscribe/Update your Subscription:
> >>>>>>>
> http://lists.apple.com/mailman/options/webobjects-dev/ianjoyner%40me.com
> >>>>>>>
> >>>>>>> This email sent to ianjoy...@me.com
> >>>>>>
> >>>>>> _______________________________________________
> >>>>>> Do not post admin requests to the list. They will be ignored.
> >>>>>> Webobjects-dev mailing list      (Webobjects-dev@lists.apple.com)
> >>>>>> Help/Unsubscribe/Update your Subscription:
> >>>>>>
> http://lists.apple.com/mailman/options/webobjects-dev/dleber_wodev%40codeferous.com
> >>>>>>
> >>>>>> This email sent to dleber_wo...@codeferous.com
> >>>>>
> >>>>> ;david
> >>>>>
> >>>>> --
> >>>>> David LeBer
> >>>>> Codeferous Software
> >>>>> 'co-def-er-ous' adj. Literally 'code-bearing'
> >>>>> site:     http://codeferous.com
> >>>>> blog:     http://davidleber.net
> >>>>> profile:  http://www.linkedin.com/in/davidleber
> >>>>> twitter:  http://twitter.com/rebeld
> >>>>> --
> >>>>> Toronto Area Cocoa / WebObjects developers group:
> >>>>> http://tacow.org
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>
> >>>> _______________________________________________
> >>>> Do not post admin requests to the list. They will be ignored.
> >>>> Webobjects-dev mailing list      (Webobjects-dev@lists.apple.com)
> >>>> Help/Unsubscribe/Update your Subscription:
> >>>>
> http://lists.apple.com/mailman/options/webobjects-dev/chill%40global-village.net
> >>>>
> >>>> This email sent to ch...@global-village.net
> >>>
> >>> --
> >>> Chuck Hill             Senior Consultant / VP Development
> >>>
> >>> Practical WebObjects - for developers who want to increase their
> overall knowledge of WebObjects or who are trying to solve specific
> problems.
> >>> http://www.global-village.net/products/practical_webobjects
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>> _______________________________________________
> >>> Do not post admin requests to the list. They will be ignored.
> >>> Webobjects-dev mailing list      (Webobjects-dev@lists.apple.com)
> >>> Help/Unsubscribe/Update your Subscription:
> >>>
> http://lists.apple.com/mailman/options/webobjects-dev/mschrag%40pobox.com
> >>>
> >>> This email sent to msch...@pobox.com
> >>
> >
> > _______________________________________________
> > Do not post admin requests to the list. They will be ignored.
> > Webobjects-dev mailing list      (Webobjects-dev@lists.apple.com)
> > Help/Unsubscribe/Update your Subscription:
> >
> http://lists.apple.com/mailman/options/webobjects-dev/mschrag%40pobox.com
> >
> > This email sent to msch...@pobox.com
>
>  _______________________________________________
> Do not post admin requests to the list. They will be ignored.
> Webobjects-dev mailing list      (Webobjects-dev@lists.apple.com)
> Help/Unsubscribe/Update your Subscription:
>
> http://lists.apple.com/mailman/options/webobjects-dev/antonio.petri%40googlemail.com
>
> This email sent to antonio.pe...@googlemail.com
>
 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to