×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

Service Oriented Architecture With Java

samzenpus posted more than 4 years ago | from the read-all-about-it dept.

Books 110

Martijn de Boer writes "The book has been written to provide the reader with a short introduction to the concepts of Service Oriented Architecture with Java. The book covers the theory and analysis from the start and is progressing to a more intermediate level slowly throughout the different chapters. This book has been written for software architects and programmers of the Java language who have an interest in building software using SOA concepts in their applications. The cover hints to a series called “From Technologies to Solutions”, and that is exactly what this book tries to do, it tries to explain the SOA technology with different case studies and a path for solutions for your applications." Read below for the rest of Martijn's review.When I ordered the copy of the book, I was under the impression that I was required some familiarity with terms used in the world of SOA but I was rather fond of the easy explanation of terms in the first chapter. The first chapter starts off with a small introduction to the role of software architecture when thinking about a software project. The chapter covers alternatives to SOA and tries to get the reader onto the right path for the rest of the book.

Later on in the book different subjects pass, the first few chapters start off with the basics of using XML as a communication layer. The third chapter introduces the audience to different implementations of web services in the Java world including the most familiar names as Apache Axis, Spring and XFire. The reader will be shown and guided to the install process of these web services and is being shown around the process of working with the software. The pros and cons of every piece of software are shown when following the steps throughout the chapters.

The book ends with chapters providing case studies of real world examples of SOA and alternatives. I have found this to be the most informative section of the book when looking to make decisions on how to architect a software project as it provides several examples on when to use which aspect of SOA. The different case studies allow you to put some weight and foundations into your decisions. The last chapter of the book is basically a conclusion of what we have learned throughout the book and provides a clear summary of goals of using service oriented architecture.

The reader is expected to have understanding of Java to follow the examples throughout the book. Examples are demonstrated on Windows machines, but could be followed on any other platform as well without having the hassle of setting up a different environment. That is one of the advantages of Service Oriented Architecture with Java, because it basically can be ran everywhere.

When you work your way throughout the book, you will discover different clearly illustrated diagrams and other informational graphics. There are more than enough images to make this something other than a boring theory book, as the images often provide a better understanding of different explanations of architecture and setups.

The book covers a small setup with Apache Axis 1.3 and mentions to use this opposed to the more recent 2.0 version because more software is being implemented on top of the 1.x series of said web service. However because the reader is starting to learn about SOA, it would have been great to see some of the differences and read why 2.0 hasn't been adopted much yet. I would have liked to see a bigger comparison between those two versions, but as the authors point out, there is a great community for both versions which provides a lot more background information if you want to look further into the more technical information that isn't provided in the book yet.

This book is a good way to get your feet wet in using web services to build and architect powerful Java applications for your business. I am no big Java developer yet, and I needed this book to navigate through the different pieces of software available, it succeeded very well at that point. I was fond of the clear writing style, which has always been the case by books from Packt Publishing. The book also has been written in a logical order, putting case studies at the end of the book so they are better to follow. Most technical books I own are written in a way that allows you to jump from chapter to chapter in an order that you need them, but I found this book to be a solid line of information of which the difficulty grade builds up from beginning to end. As a developer and software architect I really appreciate how well this book has been written for this audience, it's almost as if it was written especially for me and the knowledge I had of service oriented architecture.

You can purchase Service Oriented Architecture with Java from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.

cancel ×
This is a preview of your comment

No Comment Title Entered

Anonymous Coward 1 minute ago

No Comment Entered

110 comments

Java! (-1, Flamebait)

Anonymous Coward | more than 4 years ago | (#30300210)

Java is slow and useless, I write all my code in assembler.

Not really, but I thought I would get all those comments out of the way.

Re:Java! (2, Funny)

Icegryphon (715550) | more than 4 years ago | (#30300244)

assembler is slow and useless, I write all my code in pure machine code.

TTL (2, Funny)

MillionthMonkey (240664) | more than 4 years ago | (#30301072)

What a bunch of babies everybody is. We implementing method calls in XML over HTTP from server to server as if they're pretending to be frigging browsers to each other. Remember when the world was simpler and we were using CORBA for that stuff? Or when we were going down to the TCP/IP layer and using sockets, and figuring our own stuff out? Before TCP we were sending raw IP packets. Uphill. Both ways. And it was good enough for us. We weren't kids anymore, writing BASIC programs on our little 8 bit machines. Of course BASIC was way too slow and you really had to go down to the machine code level to write anything that wouldn't embarrass you in front of your little friends. Really, all this stuff is based on a protocol that everybody should be using: TTL. And transistor-transistor logic should be good enough for anybody. If you can't rewrite your goofy SOA application using TTL it just shows how ignorant you are about what you're really doing.

Re:Java! (0)

Anonymous Coward | more than 4 years ago | (#30307708)

machine code is slow and useless I only write microcode.

Re:Java! (1)

tachyonflow (539926) | more than 4 years ago | (#30314560)

Microcode is slow and useless. I only arrange logic gates by hand. (Check out my fancy new word processor, coming in January 2490!)

Re:Java! (0)

Anonymous Coward | more than 4 years ago | (#30300308)

Speed is not Java's problem.

Java's problem is that it just doesn't work half the time. I mean often it seems like the perfect solution but then when you go to implement stuff, it just won't work correctly. So annoying. You waste more time trying to debug crap than actually developing your application. And by debug I mean it's usually some sort of problem with the browser plugin or some implementation retardedness in the JVM or whatever.

Re:Java! (0)

Anonymous Coward | more than 4 years ago | (#30300564)

What do you mean, "doesn't work half the time"? You would probably say the same thing about C++ - you simple don't know what you're doing.

If you're dealing with a browser plugin, then your problem is likely with security preventing your app from running certain things. Why in the world would you use a Java applet anyway?

Anyway...these problems are irrelevant to the discussion, which discusses SOA, not client-side implementations.

Re:Java! (1)

Shotgun (30919) | more than 4 years ago | (#30303354)

Like the applet not being able to regain keyboard focus in a browser running on Linux. That is, you click away to another window or something else in the browser, and then you click back on the applet. Unless you click in a text box, your key listener won't respond to input.

Yeah, I found out this one is a couple years old, as I've been trying to get my software to work.

Re:Java! (0)

Anonymous Coward | more than 4 years ago | (#30300652)

I've not found that. I'll admit it's really really boring though.

Re:Java! (0, Offtopic)

elnyka (803306) | more than 4 years ago | (#30306350)

Speed is not Java's problem.

Java's problem is that it just doesn't work half the time. I mean often it seems like the perfect solution but then when you go to implement stuff, it just won't work correctly. So annoying. You waste more time trying to debug crap than actually developing your application. And by debug I mean it's usually some sort of problem with the browser plugin or some implementation retardedness in the JVM or whatever.

Just because YOU have problems doing your school homework and toy apps with Java, that doesn't mean Java does not work half the time in the industry, in the real world for the rest of us.

Re:Java! (1, Funny)

Anonymous Coward | more than 4 years ago | (#30306376)

Java is fat and gay.

I'll admit... (3, Interesting)

Monkeedude1212 (1560403) | more than 4 years ago | (#30300258)

The only "service" I started from Scratch was the one to make the CD Tray eject every 5 minutes. It's been alot of fun pulling pranks on room mates and co-workers. However my co-worker had the profound idea of putting this on a handful of USB sticks and have it auto-install when plugged in to a computer. Then we toss a handful of these things in the parking lot, and whoever puts in an IT Request about it gets fired.

As for the book, I've never worked on a web service in Anything but VB, it handles everything we need it to do, which is very basic (pun intended).

Aside from the familiarity of Java, what benefits would Java offer for web services?

Re:I'll admit... (1, Insightful)

Anonymous Coward | more than 4 years ago | (#30300338)

I hope you are not from the UK. If you are then you would be guilty of an offense under the computer Misuse Act. What you are doing is intentionally putting malware(ie changing the operation) onto computer without the knowledge or permission of the user. If you did this in my company it would be groun for instant dismissal. The person using the USB stick could be in deep shit as well.

Humour bypass intentional.

Re:I'll admit... (1)

edittard (805475) | more than 4 years ago | (#30300676)

If you were the sysadmin, you could rightly claim it was a security exercise specifically targeting the wetware.

Re:I'll admit... (0)

Anonymous Coward | more than 4 years ago | (#30300786)

UKian here. The company I toil for often puts shite on "me" (their) computer all the time. Never got me permission for it, either!

Re:I'll admit... (0)

Anonymous Coward | more than 4 years ago | (#30300346)

Aside from the familiarity of Java, what benefits would Java offer for web services?

If you want your web site to be a bloated piece of crap, Java is by far the best choice.

Re:I'll admit... (2, Insightful)

cryfreedomlove (929828) | more than 4 years ago | (#30300414)

Then why are the biggest ecommerce sites in the world (e.g. Amazon, EBay, etc) built using Java?

Re:I'll admit... (0)

Anonymous Coward | more than 4 years ago | (#30300512)

because they have the money to buy the servers to maintain and run their bloated pieces of crap.

Re:I'll admit... (2, Informative)

MightyMartian (840721) | more than 4 years ago | (#30300706)

You know jack-shit, pal. Yes, Java on the UI has historically been kind of sucky, though it's getting a helluva lot better, but I've worked with Java for some utility programming, and it's pretty damned fast and certainly no more bloated than using Python, PHP or any other language of that ilk.

Re:I'll admit... (3, Informative)

Nadaka (224565) | more than 4 years ago | (#30301838)

Optimized java can run at speeds close to c++, several orders of magnitude faster than scripting languages like PHP or python, and in some (admittedly rare) cases it can run faster than c++ thanks to optimizations performed at run time that could never be matched with precompiled code.

Re:I'll admit... (1)

Wraithlyn (133796) | more than 4 years ago | (#30305920)

I think it's more that Java web frameworks tend to be (or at least seem) very convoluted and heavy weight, rather than the Java language itself being slow (it's not).

The number of method calls you see in a typical stack trace, even in a "lightweight" framework like Spring, JUST TO SERVE A DAMN WEB PAGE (even static ones), is frankly ridiculous IMHO.

Perhaps I just suck at Java web apps (entirely possible, it's something I've consciously avoided really specializing in), but it always seems to take 5x longer to get the equivalent amount of work done on a Java webapp compared to something like PHP. And I'm no slouch at Java itself, I did client/server app development for 5+ years before moving into the web space.

Or maybe I'm just ranting because I'm stuck working on a bloated e-commerce Java webapp that performs like a sack of wet concrete at my job right now. :P

Re:I'll admit... (1)

MikeFM (12491) | more than 4 years ago | (#30307732)

Almost anything is faster than PHP. Java runs a little faster than Python but not a lot if the code is of comparable quality and similar JITs are used. Java usually takes a little longer to launch also so not really good for short programs.

My biggest complaint though is that programming in Java is frequently retarded. The need for generics is a good example of adding complexity to try to fix bad language design and it still sucks sometimes. Upcasting and downcasting has serious issues that make certain certain common patterns a pain to implement. Regular expressions are implemented oddly too. The code isn't as bad as C as to the amount of bookkeeping code that makes it harder to follow the actual logic but it's quite a bit more than languages like PHP or Python.

Re:I'll admit... (0)

Anonymous Coward | more than 4 years ago | (#30314980)

Yeah, I'm always hearing the Java "Dudes" comforting themselves on cold winter night with that crap. Other then contrived examples, or purposely written bad code (or by an idiot) Java will never come close to beating C++. When Java has deterministic memory usage (or, hell, just deterministic object LIFE-TIME) come talk to me. Until then keep it out of my real-time system.

Re:I'll admit... (0)

Anonymous Coward | more than 4 years ago | (#30301190)

Yeah, because companies loooove to waste money. Read about scalability, maintainance costs, available libraries for Java etc, and than try to work with a complex project, maybe you will understand why Java is well suited for some projects.

Re:I'll admit... (2, Insightful)

RichardJenkins (1362463) | more than 4 years ago | (#30300686)

Because Java was the only game in town for 'enterprise apps' when their platforms were produced and the incremental maintenance costs are always more attractive than a large migration?

Re:I'll admit... (1)

DiegoBravo (324012) | more than 4 years ago | (#30302178)

At that time, there was Perl, and several Apache modules to avoid the problems of plain cgi.

Currently we have Ruby, Python, etc... and of course .NET, but AFAIK the Java/JEE environment is the more mature platform for that level of service.

Re:I'll admit... (3, Insightful)

thetoadwarrior (1268702) | more than 4 years ago | (#30304368)

I'm not sure to what extend it is but Amazon do indeed use Perl and still advertise roles mentioning Perl. Java was the only game in town in the sense that it was the best option. In my opinion is still is. .Net is a non-event as long as you're forced to use it with Windows and no Mono doesn't count, unless you get a hard-on over always being outdated from the real .Net.

Re:I'll admit... (0)

Anonymous Coward | more than 4 years ago | (#30301610)

Amazon uses a slew of technologies, not just Java, they have long used Perl. When comparing program languages, it is important to note that Java and .NET have had major companies marketing them, while languages like Ruby, Perl, PHP ... have all grown from the open source development community.

Re:I'll admit... (0)

Anonymous Coward | more than 4 years ago | (#30303088)

Then why are the biggest ecommerce sites in the world (e.g. Amazon, EBay, etc) built using Java?

Because they don't want to buy Windows licenses for their server farms. Aside from that one issue, a .Net SOA implementation would be categorically superior.

Re:I'll admit... (3, Interesting)

Nadaka (224565) | more than 4 years ago | (#30303604)

I have seen side by side performance comparisons of the same algorithms in java and c#. Java is at least twice as fast as c# and often as much as 2^3 times faster. The .NET architecture footprint, both in terms of disk space is also larger. In what way is .Net categorically superior?

Re:I'll admit... (1)

shutdown -p now (807394) | more than 4 years ago | (#30308120)

I have seen side by side performance comparisons of the same algorithms in java and c#. Java is at least twice as fast as c# and often as much as 2^3 times faster.

You know, you really have to provide references for such claims. I mean, I can say that I've seen the reverse - only I won't lie, and say that .NET version was only about 15% faster than Java, and even that was solely because of a peculiar heavy allocation pattern in the code that overstrained Java GC more than it did .NET GC; but I have no references either. Now, which anecdote is better?

Re:I'll admit... (1)

Octorian (14086) | more than 4 years ago | (#30309374)

.NET is far superior for Windows desktop application development. Big surprise there ;-)

Also, for what its worth, C# is a far more advanced language now than Java. Probably because they care more about moving things forward than actively supporting people who want to pretend new versions don't exist for eons. (*cough* people who still only support Java 1.4 *cough*)

That being said, Java is still a far more versatile and community-oriented platform than .NET, in no small part to the "official VM/SDK" being available for more than one platform.

Re:I'll admit... (1)

Nadaka (224565) | more than 4 years ago | (#30310552)

I will certainly cede that .NET is the best language for windows GUI apps, in no small part to a well built drag and drop IDE (still has a few problems, why did they stop displaying keyboard shortcuts for common actions in VS2008?) And by advanced, I take that to mean, still evolving and not completely defined?

C# is not a bad language, I actually prefer some of its reduced restrictions compared to java. But its still evolving and its starting to suffer from "to many ways to do something less efficiently".

Re:I'll admit... (2, Informative)

AuMatar (183847) | more than 4 years ago | (#30303626)

They aren't entirely. Amazon allows teams to use any language they want. The majority use Java and C++. Most of the high performance parts use C++, not Java. And hardware there wasn't hard to acquire, so there was little impetus to the teams to go for higher performance vs just buying more boxes, even if you scaled out pretty widely. They were changing that when I left the company, but it was too short a time frame to rewrite working services in for the efficiency gains.

Re:I'll admit... (1)

jhoegl (638955) | more than 4 years ago | (#30300366)

A smarter IT person would just disable USB ports or disable additional drive support. So grats... grats on your ability to take a stupid prank and make it harm people because you are an idiot.

Re:I'll admit... (1)

Mr. DOS (1276020) | more than 4 years ago | (#30300904)

Presumably, his office's IT dept. has some basic ground rules for users, such as, "Don't use flash drives of an unknown origin." In a case like that, this would not be a prank, but offensive defence of the system. Admittedly, firing does seem a little bit much, but I don't know the situation - perhaps this is a high-security environment, and it's been made clear that there's zero tolerance for things like this.

      --- Mr. DOS

Re:I'll admit... (1)

radish (98371) | more than 4 years ago | (#30302050)

Again, why not just lock the ports down? Then people couldn't break the rule even if they wanted to. Asking people not to do something isn't security, preventing them from doing it is.

Re:I'll admit... (0)

Anonymous Coward | more than 4 years ago | (#30300426)

Java is okay for web services, but GBASIC is a *lot* better.

Re:I'll admit... (3, Informative)

i23098 (723616) | more than 4 years ago | (#30300616)

Aside from the familiarity of Java, what benefits would Java offer for web services?

Aside from having a huge library that helps you build your services, and a language that almost forces you to program well (A bad programmer can be bad in any language, but Java won't give you so many "liberties"), and... I guess you already see the point ;)

Re:I'll admit... (1)

harmonise (1484057) | more than 4 years ago | (#30302608)

whoever puts in an IT Request about it gets fired.

The first to get fired is the IT guy that didn't disable autorun on the company's computers.

Re:I'll admit... (2, Interesting)

Monkeedude1212 (1560403) | more than 4 years ago | (#30303018)

And he's been long gone. We haven't actually tried this approach, it was just an idea. But there is nothing wrong with taking an offensive measure to test a companies defense. Certain users will require certain rights to a machine, you simply can't lock -EVERYONE- down. The CEO for example, must have unimpeded web access, and allowed to install his applications at will. If he wants to use MSN Messenger, by God, he is GOING to use MSN messenger. And everyone in his close circle will get some of that cake.

Now, we can set up machines to do one thing or another, and we can use Active Directory to the fullest extent, and we can filter all network traffic through our proxy and keep the regular employees from facebook after they learn how to use a proxy or change their DNS.

None of these will have any effect on an employee who has a bit of technical knowledge. One who knows how to boot from a CD, change the admin password, and change his rights locally on his machine. It has happened to us before in our company, and we're not even that large, Maybe 1000 people. That person then set up some bit-torrent action and ended up getting a Virus that lagged up the entire network across Canada.

Rather then wait for something like that to happen again, we put policies in place, make them known to employees, and run a test to see who breaks them. We allowed unimpeded internet access for a week and tracked all the people who use facebook once a day or more. They didn't get fired but they got a harsh warning. I mean you can call it underhanded but thats just the route you gotta take in the security biz.

Re:I'll admit... (1)

Fulcrum of Evil (560260) | more than 4 years ago | (#30306316)

We allowed unimpeded internet access for a week and tracked all the people who use facebook once a day or more. They didn't get fired but they got a harsh warning. I mean you can call it underhanded but thats just the route you gotta take in the security biz.

Who cares if someone uses facebook once a day? Seriously, it takes 5-10 minutes that I spend on a compile or waiting for some other thing.

Re:I'll admit... (1, Insightful)

Anonymous Coward | more than 4 years ago | (#30305470)

Aside from the familiarity of Java, what benefits would Java offer for web services?

Compared to VB, one huge, huge advantage: Running on a server class operating system.

Re:I'll admit... (1)

slim (1652) | more than 4 years ago | (#30309006)

Aside from the familiarity of Java, what benefits would Java offer for web services?

From my perspective, the mainstream application server frameworks are all Java-centric. JBoss, WebSphere etc.

There's a laundy list of features you get from these containers - clustering, connection pooling, caching, load balancing, distributed deployment, etc. .Net probably gives you all this too, but personally I prefer not to be locked into MS (Mono notwithstanding). The Java stuff is reasonably open, so you can migrate between app servers if you need to.

The mainstream Java IDEs all have plenty of support for web service development.

The big news nowadays is that the Java platform is a lot more friendly than it used to be for polyglot programming. Groovy, Jython, Clojure, JRuby are all lovely languages for writing the kind of stuff that Java tended to make fiddly.

Re:I'll admit... (0)

Anonymous Coward | more than 4 years ago | (#30310340)

I've never worked on a web service in Anything but VB, it handles everything we need it to do, which is very basic (pun intended).

Yea and your site will not work on my nix box so I take my business else where. Go ahead write it in VB I'll just spend my money with your competitor. Their site is cross-platform compatible.

I really have to get off my ass... (3, Funny)

H0p313ss (811249) | more than 4 years ago | (#30300278)

... and actually write my proposed book: "Software Design With Popular Acronyms"

Re:I really have to get off my ass... (1)

Zarf (5735) | more than 4 years ago | (#30309626)

You and me both. I have an idea for a book called: "Buzzword Buzzword Buzzword for more Buzzword" want to collaborate?

SOA anecdote (5, Funny)

discord5 (798235) | more than 4 years ago | (#30300348)

In Dutch SOA stands for "Sexueel Overdraagbare Aandoening", or Sexually Transmitted Disease. Someone at my office recently received the prestigious title "SOA Expert", which of course has led to very strange looks from the mailman when a package arrives for him.

It's been several months, and the joke still hasn't gotten old, which shows either the level of inappropriateness of the title in Dutch or the maturity of the people making the joke. (I'm guessing the combination of both)

Re:SOA anecdote (1)

shutdown -p now (807394) | more than 4 years ago | (#30308124)

It's been several months, and the joke still hasn't gotten old, which shows either the level of appropriateness of the title in Dutch

Fixed that for you.

Re:SOA anecdote (1)

node159 (636992) | more than 4 years ago | (#30308192)

We worked with a product who's acronym was JIS (when said, can not be differentiated with jizz, see http://www.youtube.com/watch?v=4pXfHLUlZf4 [youtube.com] for definition). Everything had the lable JIS in it including the package names, documentation, server names, job titles (JIS Expert was one of them).

It took us about 6 months before we could say JIS expert with a straight face, at which point we inflicted this humor on our clients during boardroom meetings, it was hilarious watching them not trying to crack.

Re:SOA anecdote (0)

Anonymous Coward | more than 4 years ago | (#30308780)

A colleague of me received something similar, he was invited to a conference called: "Master your SOA"

SOA (0)

beerbear (1289124) | more than 4 years ago | (#30300354)

SOA stands for same old architecture. Don't believe the hype.

Re:SOA (-1, Troll)

Anonymous Coward | more than 4 years ago | (#30300410)

Shit On Arrival

Re:SOA (1)

Party Chief (61649) | more than 4 years ago | (#30304172)

right on! more like Same Old Anus for wont of a wanky TLA...

if you're going to design a service platform, design a freaking service platform - if you're going to build a service-based business, well then build a f*cking service-based business. if your legacy sh*t is sh*tty and holding you back from where you want to be well then rip it out. no need to apologise. no need to look to some enterprise-grade apologist for the magic bullet, there isn't one...

Axis 1.x (0)

Anonymous Coward | more than 4 years ago | (#30300370)

"read why [Axis] 2.0 hasn't been adopted much yet"

Because it's shit. The code generators don't work (enums fail spectacularly amongst other things), it's more complex and the only thing it can do over Axis 1.4 is namespace prefixes in the XML - something that could easily be added I'm sure.

The Apache Foundation need to get their act together with this API.

They should be using Annotations to specify in your data model the XSD parameters (minoccurs, etc). I expect the other web service frameworks for Java are already utilising these.

Update Java2WSDL to use the annotations, so generated WSDLs are more accurate and concise. If possible, put the Javadoc comment into an XSD documentation tag.

With Axis it's like they did 80% of the job and fucked off.

Re:Axis 1.x (0)

Anonymous Coward | more than 4 years ago | (#30300832)

With Axis it's like they did 80% of the job and fucked off.

Curiously enough, the manager of the Java group where I work has said, "80% is all you can hope for." I wish I was kidding.

SOA is great but... (4, Insightful)

fortapocalypse (1231686) | more than 4 years ago | (#30300450)

SOA, Java, Axis 1... Did I take a time warp to 2003? Hard to believe that this would be of much interest these days. Also, CXF is a lot better than Axis, and who still uses Axis 1? Come on...

Save Our Asteroids (0)

Anonymous Coward | more than 4 years ago | (#30300654)

I read a paper on SOA once. It might as well be titled how to prevent small rocks from crashing into our Sun.

Anything that uses XML for RPC and has no concept of distributed transactions (Compensation) rightfully deserves to continue its steady march into irrelevent obscurity like all the other nonsensical marketing based concepts before it.

SOA as a concept is "duh" .. SOA as popularly implemented (BPL) is "What year is this and you want me to do what?"

No thank you. If it doesn't at least support distributed transactions its not worth wasting ones time over.

Re:Save Our Asteroids (4, Insightful)

Simon (S2) (600188) | more than 4 years ago | (#30300810)

Anything that uses XML for RPC and has no concept of distributed transactions (Compensation) rightfully deserves to continue its steady march into irrelevent obscurity

SOA does not mean you have to use Web Services or XML over RPC to implement your services. A service is defined (by most people) as a piece of Software that follows some principles, like
- be interoperable
- having a defined interface
- be reusable
- ...
Web Services just happen to be used because they are interoperable, define an interface, ... but you could use simple jars, dlls or hell... stored procedures if you want.
And, btw, Web Services have a standard for distributed transactions [wikipedia.org].
As for SOA being irrelevant I dont't agree: the theory behind it is nothing really new. It just tries to define some common sense and document one of the many ways you can architect the software you write. It may not be the solution for everything, but for some business cases it's the right tool.

Re:Save Our Asteroids (0)

Anonymous Coward | more than 4 years ago | (#30300852)

So basically SOA is a whole load of marketing bullshit?

Please, I knew that one paragraph into the first article I read about it, years ago.

Re:Save Our Asteroids (2, Insightful)

Anonymous Coward | more than 4 years ago | (#30301176)

That's like saying "OO Design" is a load of marketing bullshit. All SOA does is formulate the principles of "service-orientation" (as OO Design formulates principles of object-orientation). SOA is unique in that there are truly standard and interoperable implementations (WS-*) that support service-orientation.

In a sentence, SOA is the natural, evolutionary extension of object-oriented (and even aspect-oriented) design to the network, using open and widely-accepted XML standards as the distributed programming language.

Re:Save Our Asteroids (0)

Anonymous Coward | more than 4 years ago | (#30303698)

Most OO design is pure bullshit.

Just about every "enterprise" system these days uses "design patterns" and "best practices" to the point of making the system much harder to maintain and comprehend.

I started writing software in the late 1970s, using COBOL. Software in those days was actually much simpler to implement, and often worked much better (which is why we still use so much of it today). You didn't need to dig through mountains of UML diagrams, or try to understand the botched implementation of various design patterns, like you do today. And to be honest, the software systems today don't actually do much more than those of the 1970s.

Until about 1996, when GoF became widely known, basic OO techniques did help out. OO concepts are useful when working with strings and GUI widgets. But beyond that, they become a burden. Since 1996, the OO development community has gone on a complexity binge.

It's no wonder that this corresponds to the rise of Java. They've worked hand-in-hand to create some stupidly complex systems. SOA is just an off-shoot of this stupidity.

Re:Save Our Asteroids (2, Funny)

binarylarry (1338699) | more than 4 years ago | (#30307962)

Uh, you forgot the last line of your post:

"Get off my lawn, you damn kids and your rock and roll music, social equality and your high level programming languages!"

Re:Save Our Asteroids (0)

Anonymous Coward | more than 4 years ago | (#30301408)

SOA in popular parlance in the real world implictly indicates a set of specific technologies.

Why didn't you quote the part of my comment that included SOA as a concept "duh".. Could it be because then you wouldn't be able to misinterpret my message to claim this was not something I already knew?

The only form of distributed transactions in these systems is compensation transactions which I *also* referred to. If you want to call compensation "adequeite" then go ahead but please don't be surprised when serious people laugh out loud at the thought.

Re:Save Our Asteroids (1)

AuMatar (183847) | more than 4 years ago | (#30303706)

SOA is just OOP or modular programming come again, with network latency added in. It's useful (I wouldn't build a huge website without it), but it should be easily understood by anyone who's done software design before. Its problem is people hyping it up like it's a new paradigm when it isn't.

Re:Save Our Asteroids (1)

jayegirl (26328) | more than 4 years ago | (#30307758)

"I just don't trust anything that bleeds for five days and doesn't die."

Wow! Nice stealth misogyny, dude!

Exactly my thoughts. (1)

balbeir (557475) | more than 4 years ago | (#30300746)

Java is mature. Not really the leading edge anymore. The SOA hype did come and go.

Teaching SOA using a single language? (2, Insightful)

agbinfo (186523) | more than 4 years ago | (#30301000)

Isn't the purpose of SOA to be platform and language independent?

I would think that a book on SOA that covers a single programming language is missing a key aspect of SOA.

I understand that if someone is writing an SOA application then the application can be written in Java only but I would expect the application to be tested using several languages.

Re:Teaching SOA using a single language? (2, Insightful)

Deth_Master (598324) | more than 4 years ago | (#30313620)

Well, the book is called "Service Oriented Architecutres with Java."
If you're concerned about interoperability, then you will obviously test with other languages. But if you're building multiple services in your company/business for your use, and you're all using Java, then I don't see any reason to use another language. Although, I'd prefer to use OSGi as then you avoid the whole XML thingy.

SOA??! (0)

Anonymous Coward | more than 4 years ago | (#30301956)

WTF, I thought SOA was Start Of Authority...

Java is a great *idea* (-1, Troll)

FlyingGuy (989135) | more than 4 years ago | (#30302112)

Unfortunately the implementation is poor.

Java held out the promise of write it once run it anywhere, but that promise has yet to be fulfilled as there are still differences from platform to platform that make developing in it a chore rather then enjoyable work.

Most of the problems are with the various implementations of both JIT's and VM's and mostly having to do with how things are abstracted eg: big -v- little endian, file access and those sorts of things.

The tons of lib's that are mentioned as a god send have their own problems as well but that has more to do with programmer quality then anything else, but even the well designed and written ones still overlook the JIT and VM problems and then you end up having damn quirky behavior that can take weeks to track down, hence the problem of everyone sending out a complete JRE with their program and you end up in JRE hell with 14 different versions of JRE's on your system.

I liked the IDEA of having SUN control Java because at least things would have been consistent but that failed as well with to damn many versions being released. Now we have everyone and their grandmother writing JVM's JIT's and JRE's and none of them do anything exactly the same which has thrown ever more variability into the mix and just made everything messier since suddenly you now had to install vendor X's JRE or VM because some fool decided that it made everything 1% faster and they JUST had to have it or alternatively it had a COOL name.

I see the biggest problem with WEB development today as two things. 1. Lack of a statefull connection and 2. The proliferation of languages with linguistic and syntactual differences but little else to set them apart except a fan club. PHP, Ruby, Python, VB, Perl, all of them doing the same thing, serving the content.

The fundamental paradigm of the web is broken and needs repair badly. The solution is to split it, as I have said before, into two distinct camps, the Application Web and the Text and Pretty Picture Web because trying to mix the two has proven to be a miserable failure.

Perhaps HTML5 will provide some relief but I think it will simply complicate things more and cause more problems then it is worth when trying to mix the two, but we will see.

Re:Java is a great *idea* (0)

Anonymous Coward | more than 4 years ago | (#30302554)

thank god you aren't in charge of the internet

Re:Java is a great *idea* (5, Insightful)

binarylarry (1338699) | more than 4 years ago | (#30302710)

Unfortunately the implementation is poor.

Can you name a faster and more reliable implementation? Didn't think so.

Java held out the promise of write it once run it anywhere, but that promise has yet to be fulfilled as there are still differences from platform to platform that make developing in it a chore rather then enjoyable work.

If you use pure java code the cross platform stuff just works. Period.

Most of the problems are with the various implementations of both JIT's and VM's and mostly having to do with how things are abstracted eg: big -v- little endian, file access and those sorts of things.

What does this nonsensical gibberish mean?

The tons of lib's that are mentioned as a god send have their own problems as well but that has more to do with programmer quality then anything else, but even the well designed and written ones still overlook the JIT and VM problems and then you end up having damn quirky behavior that can take weeks to track down, hence the problem of everyone sending out a complete JRE with their program and you end up in JRE hell with 14 different versions of JRE's on your system.

If you target older jre's you'll get very good compatibility across the board. There used to be issues caused by Microsoft's JRE... but that's why they built it. If you target a bleeding edge ANYTHING, you're going to have compatibility problems.

I liked the IDEA of having SUN control Java because at least things would have been consistent but that failed as well with to damn many versions being released. Now we have everyone and their grandmother writing JVM's JIT's and JRE's and none of them do anything exactly the same which has thrown ever more variability into the mix and just made everything messier since suddenly you now had to install vendor X's JRE or VM because some fool decided that it made everything 1% faster and they JUST had to have it or alternatively it had a COOL name.

Why do you keep randomly throwing the acronym "JIT" everywhere? Again, you just poorly restated your earlier comment which isn't true and makes little sense.

I see the biggest problem with WEB development today as two things. 1. Lack of a statefull connection and 2. The proliferation of languages with linguistic and syntactual differences but little else to set them apart except a fan club. PHP, Ruby, Python, VB, Perl, all of them doing the same thing, serving the content.

1) ???? How does this affect Java in anyway? 2) ???? How does this affect Java in anyway?

The fundamental paradigm of the web is broken and needs repair badly. The solution is to split it, as I have said before, into two distinct camps, the Application Web and the Text and Pretty Picture Web because trying to mix the two has proven to be a miserable failure.

????? WTF

In summary,

FlyingGuy, what you've just said is one of the most insanely idiotic things I have ever heard. At no point in your rambling, incoherent response were you even close to anything that could be considered a rational thought. Everyone on this site is now dumber for having read to it. I award you no points, and may God have mercy on your soul.

Re:Java is a great *idea* (1)

Shotgun (30919) | more than 4 years ago | (#30303640)

Java held out the promise of write it once run it anywhere, but that promise has yet to be fulfilled as there are still differences from platform to platform that make developing in it a chore rather then enjoyable work.

If you use pure java code the cross platform stuff just works. Period.

Umm...no.

Write an applet with a keyboard listener that will play a sound clip when the spacebar is pressed. Put a button and a text area on there. Make the button play the sound for good measure.

Load the applet in firefox on windows. Hit the spacebar, hear the sound. Load the applet in firefox on Linux. Hit the spacebar, hear the sound.

Now put the cursor in the address bar.

On Windows, push the button, hear the sound. Press the spacebar, hear the sound.

On Linux, push the button, hear the sound. Press the spacebar, ..... oops! No sound. The problem was reported to Sun two years ago.

I like Java. I like Java a LOT. But by no stretch of the imagination does it "just work."

Re:Java is a great *idea* (1)

H0p313ss (811249) | more than 4 years ago | (#30304152)

Sound in Linux is a PITA in any language. If I was starting to diagnose this issue I wouldn't have started by blaming the VM.

Re:Java is a great *idea* (1)

Shotgun (30919) | more than 4 years ago | (#30316318)

Hence the verification that the sound is working before clicking away. It's a little trick that professional call "verification of test setup."

Re:Java is a great *idea* (1, Informative)

Anonymous Coward | more than 4 years ago | (#30304156)

Ok, you are probably absolutely right. However, no one cares at all about applets. 99% of all written java code is pure server side and where it absolutely shines. If you are still bringing up applets when downtalking Java you have either not used the language in 10 years or you are just trying to put it in bad light on purpose.

Re:Java is a great *idea* (2, Insightful)

Shotgun (30919) | more than 4 years ago | (#30316294)

Just checked my 401K. Fidelities website requires applets for certain functions. Someone cares about applets.

So, the map of the conversation is now:
-The language works every.
-No it doesn't. Here is a proof of concept that you can try yourself.
-No one cares about that part of the language.

Re:Java is a great *idea* (1)

binarylarry (1338699) | more than 4 years ago | (#30304964)

You're blaming Java because Linux sound sucks?

I use Ubuntu daily and I don't think a day goes by without me cursing the names ALSA and PulseAudio.

Especially PulseAudio.

Re:Java is a great *idea* (2, Informative)

Fulcrum of Evil (560260) | more than 4 years ago | (#30306338)

you really think this is anything to do with sound? make the action something visual - same effect.

Re:Java is a great *idea* (0)

Anonymous Coward | more than 4 years ago | (#30306686)

It's possible. Java sound in linux just plain didn't work until openjdk 1.6 recently. The cause? No mixing enabled in the hardware sound line (not the software that worked in java 1.3 i think - changed i don't know why - the real cause? ALSA).

Pulse audio is what is actually being used to fix it in the openjdk.

Re:Java is a great *idea* (1)

ascari (1400977) | more than 4 years ago | (#30305344)

A thought: I just read that slashdot post about brain slicing. Maybe the parent was written by H.M.? (The "slicee") Notice how it gets weirder and weirder - slice by slice?

Re:Java is a great *idea* (0)

Anonymous Coward | more than 4 years ago | (#30305578)

You are wrong about Java in certain details ("write once" is broken, has been broken for years, and remains broken; I can tell you stories about deploying applications that did crazy things like leak references only when run under the Solaris JVM, or that fail intermittently unless someone touches the JAR).

But you are absolutely right about the above comment. It's incoherent and full of BS.

Re:Java is a great *idea* (1)

smbell (974184) | more than 4 years ago | (#30307138)

I've been writing Java web service, web applications, and client applications for more than six years now. My current project runs on Solaris servers in about eighty countries around the world. My development environment for work is Windows and at home I use Linux. In all that time I've only run into one JVM issue that was specific to a platform (issue on Solaris JVM that caused it to just quit, which we worked with Sun to get fixed). I'm not saying "write once" is perfect, but it's so damn solid that I don't even give it a second thought.

Re:Java is a great *idea* (0, Troll)

FlyingGuy (989135) | more than 4 years ago | (#30307870)

Uhm, well normally I wouldn;t respond to such a vitriolic rant but I can't help myself because I am laughing so hard so here goes, fuck it I got karma to burn as they say...

Unfortunately the implementation is poor.

Can you name a faster and more reliable implementation? Didn't think so.

A faster more reliable implementation of?? I mean if you are going to yell at me at least say what you are yelling about.

Java held out the promise of write it once run it anywhere, but that promise has yet to be fulfilled as there are still differences from platform to platform that make developing in it a chore rather then enjoyable work.

If you use pure java code the cross platform stuff just works. Period.

Tell that to the rest of the people who have said the opposite. Not that they are supporting my argument, but they do seem to be.

Most of the problems are with the various implementations of both JIT's and VM's and mostly having to do with how things are abstracted eg: big -v- little endian, file access and those sorts of things.

What does this nonsensical gibberish mean?

Uhm I don't quite know what to say here. Are you saying you don't know what JIT means? Don't know what VM means?

The tons of lib's that are mentioned as a god send have their own problems as well but that has more to do with programmer quality then anything else, but even the well designed and written ones still overlook the JIT and VM problems and then you end up having damn quirky behavior that can take weeks to track down, hence the problem of everyone sending out a complete JRE with their program and you end up in JRE hell with 14 different versions of JRE's on your system.

If you target older jre's you'll get very good compatibility across the board. There used to be issues caused by Microsoft's JRE... but that's why they built it. If you target a bleeding edge ANYTHING, you're going to have compatibility problems.

That suggestion seems rather counter intuitive since as the various JRE's are updated there are "just gotta have" features that either fix old problems or introduce new functionality, but yes I suppose you can stay with an older version, but the problem is OS's change, kernels change and therefor something that worked in an older version might not work when the OS/kernel changes.

I liked the IDEA of having SUN control Java because at least things would have been consistent but that failed as well with to damn many versions being released. Now we have everyone and their grandmother writing JVM's JIT's and JRE's and none of them do anything exactly the same which has thrown ever more variability into the mix and just made everything messier since suddenly you now had to install vendor X's JRE or VM because some fool decided that it made everything 1% faster and they JUST had to have it or alternatively it had a COOL name.

Why do you keep randomly throwing the acronym "JIT" everywhere? Again, you just poorly restated your earlier comment which isn't true and makes little sense.

Uhmm I am not trying to be insulting, but JIT is a term that is very commonly used to refer to (J)ust (I)n (T)ime compilers in lots of languages, but they really got traction with JAVA because of the dramatic ( an order of magnitude ) increase in performance over interpreted Java

I see the biggest problem with WEB development today as two things. 1. Lack of a statefull connection and 2. The proliferation of languages with linguistic and syntactual differences but little else to set them apart except a fan club. PHP, Ruby, Python, VB, Perl, all of them doing the same thing, serving the content.

1) ???? How does this affect Java in anyway? 2) ???? How does this affect Java in anyway?

The fundamental paradigm of the web is broken and needs repair badly. The solution is to split it, as I have said before, into two distinct camps, the Application Web and the Text and Pretty Picture Web because trying to mix the two has proven to be a miserable failure.

yes I did ramble on there a bit and got off track, but since they are talking about Service Oriented Architecture and that translates to the WWW then it is at least reasonably on topic.

????? WTF

In summary,

FlyingGuy, what you've just said is one of the most insanely idiotic things I have ever heard. At no point in your rambling, incoherent response were you even close to anything that could be considered a rational thought. Everyone on this site is now dumber for having read to it. I award you no points, and may God have mercy on your soul.

It is your right to disagree, but the level of vitriol with which you wrote your post is really uncalled for. Might I respectfully suggest that you might be taking this a little tiny bit to personally? I understand passion about anything, but really you were pretty over the top.

Re:Java is a great *idea* (1)

H0p313ss (811249) | more than 4 years ago | (#30307930)

It is your right to disagree, but the level of vitriol with which you wrote your post is really uncalled for. Might I respectfully suggest that you might be taking this a little tiny bit to personally? I understand passion about anything, but really you were pretty over the top.

Wow... pot, meet kettle.

Re:Java is a great *idea* (0)

Anonymous Coward | more than 4 years ago | (#30307996)

It seems as though you know the meaning of a bunch of individual terms, but are desperately stringing them together in nonsensical ways. It's understandable why readers are frustrated, because few of the things you wrote make sense, even if the individual words have meaning. They're written as though you're high or drunk or one of those old middle manager guys who stands around spewing out-of-context jargon they don't understand.

You may be none of those things, but be aware that your tangential writing style -- especially your tendency to refer to things unrelated in any way whatsoever to the context under discussion -- and your poor grasp of the technical aspects of the words you're using are going to make it easier for readers to mistake you for an idiot.

they are talking about Service Oriented Architecture and that translates to the WWW

This is factually wrong, and is a pretty good example of the sort of "talking about something you don't understand" problem that readers have with your post.

Re:Java is a great *idea* (1)

FlyingGuy (989135) | more than 4 years ago | (#30308230)

they are talking about Service Oriented Architecture and that translates to the WWW

This is factually wrong, and is a pretty good example of the sort of "talking about something you don't understand" problem that readers have with your post.

Is it? Cloud computing, it is all the rage, it is Software As Service, it is rent me version of software and then there is this [wikipedia.org] Wikipedia article that does seem to support my assertion. As to the main point of me being any of the rather derogatory you used, the reply was keenly about Java, less about SOA, and any amount of research does support my assertions that while Java is a great idea, in practice it is just as problematic as any other language as far as cross platform use goes and as for the various implementations of Java VM's ( of which there are no less then 30 [wikipedia.org] I submit is is even more problematic. I for one am quite happy to have GCC on Linux as it is pretty much the same ( with a very few exceptions ) from distro to distro.

Re:Java is a great *idea* (1)

slim (1652) | more than 4 years ago | (#30308944)

they are talking about Service Oriented Architecture and that translates to the WWW

This is factually wrong, and is a pretty good example of the sort of "talking about something you don't understand" problem that readers have with your post.

Is it? Cloud computing, it is all the rage, it is Software As Service, it is rent me version of software and then there is this [wikipedia.org] Wikipedia article that does seem to support my assertion.

The fact that Web mashups make use of SOA does not mean that SOA 'translates to' WWW.

You could build a whole enterprise around SOA principles, without a single Web browser being involved. Possibly without HTTP being involved. One very robust way of doing enterprise SOA is for your clients and services to talk to each other over some asynch messaging protocol (JMS, Apache ActiveMQ, Websphere MQ, etc.)

Re:Java is a great *idea* (1)

chthonicdaemon (670385) | more than 4 years ago | (#30307450)

...The proliferation of languages with linguistic and syntactual differences but little else to set them apart except a fan club. PHP, Ruby, Python, VB, Perl, all of them doing the same thing, serving the content.

I suppose the world would be a better place if we could all just agree on the One True Language instead of using different languages for different jobs or thinking about problems in different ways or playing around with different ways of implementing ideas? The languages you mentioned (PHP, Ruby, Python, VB, Perl) have very little in common except being interpreted. Although I understand the desire for a standard, it's as hard to see everyone agreeing on a single programming language, and its hard to buy the argument that the many languages available is hurting the web in any way. I could make the same argument about application development, but people still manage to do it.

Re:Java is a great *idea* (1)

FlyingGuy (989135) | more than 4 years ago | (#30307760)

It would be impossible to get everyone to agree on the ONE language, that is a given, just look at the arguments of "pure" C -v- C++ -v- anything else so yes I agree. I think the problem boils down to project management mostly. I mean there is nothing generally wrong with any of them ( my own pet peeve is Python but I digress), each have their pluses and minuses so I think my chief complaint is walking into a project that is implemented in a smörgåsbord of languages, there is some Perl here, some Java there a little Python someplace else and throw in some PHP and a pinch of Ruby just for fun. Likely as not a lot of the original authors are gone and you just have a mess, albeit a mess that works, but a mess never the less. Poke it in the wrong place and the whole thing comes crashing down.

Download it here (0)

Anonymous Coward | more than 4 years ago | (#30308586)

http://old.book.pdfchm.net/service-oriented-architecture-with-java-11656/

Load More Comments
Slashdot Account

Need an Account?

Forgot your password?

Don't worry, we never post anything without your permission.

Submission Text Formatting Tips

We support a small subset of HTML, namely these tags:

  • b
  • i
  • p
  • br
  • a
  • ol
  • ul
  • li
  • dl
  • dt
  • dd
  • em
  • strong
  • tt
  • blockquote
  • div
  • quote
  • ecode

"ecode" can be used for code snippets, for example:

<ecode>    while(1) { do_something(); } </ecode>
Sign up for Slashdot Newsletters
Create a Slashdot Account

Loading...