“TCP/IP” Transmission Control Protocol Internet Protocol

TCP/IP is the protocol (or the “standardized way”) that computers over the internet communicate with one other, whether they’re transferring files, streaming music, or playing online games.  TCPIP is the structure underneath all of the communications on the internet.

For a full tutorial on TCP/IP, I recommend w3 schools.

“HTML” Hyper Text Markup Language

HTML, sometimes referred to as “the language of the web” isn’t really a language as much as it is a standard way of providing textural formatting information to describe a web page.  All web pages are written with HTML.  It’s similar to XML in that it’s composed of tags, attributes, and data, but unlike XML, it does have predefined tags.  It has tags to represent text, buttons, check boxes, drop down list boxes, images, and several other items.  Each predefined tag also has several predefined attributes.  For example, a button with the text “OK” on it is represented like this:

The tag “input” is a predefined tag available in HTML that represents some type of input.  It could be a text box, button, or other input element.  The attribute “type” is a predefined attribute available for the “input” tag.  The text “button” that’s assigned to “type” is a predefined value for the type, indicating which type of input control to display.  The value of “OK” represents the text to display on the button.

No matter what web page you’re on, you can always view the raw HTML of that page if you want.  If you’re using Microsoft Internet Explorer, open the “View” menu, then choose “source”.  If you’re on an encrypted page, it might be disabled.  If you’re using FireFox, open the “View” menu and choose “Page Source”.

For a full tutorial on HTML, I recommend w3 schools.

“HTTP” Hyper Text Transfer Protocol

HTTP is a protocol to transfer files across the internet.  Usually, this involves loading a web page from a web server to a web browser, but is certainly not limited to that.  This protocol is usually used over TCPIP, the protocol that the internet uses.

To learn all the gory details of HTTP, I recommend w3 schools.

“SOAP” Simple Open Access Protocol

SOAP is a standard way of allowing applications to transfer data over HTTP using XML.  As you can see from the title, “SOAP” is an acronym for “Simple Open Access Protocol”.

SOAP is probably used most often with XML Web Services.  But, it’s certainly not limited to that.

For a full tutorial of SOAP, I recommend w3 schools’ tutorial on SOAP.

What’s XML?

XML is a TLA (Three Letter Acronym) that stands for eXtensible Markup Language.  It’s essentially way to create a text file that’s both machine readable and human readable.  It’s probably one of the most successful ways to exchange data between different programs, different machines, and different operating systems that’s ever been put into real world use.  Almost all programs support XML now.

Below is an example of an XML file:


  1: xml version="1.0"?>
  2: <note>
  3:     <to>Johnto>
  4:     <from>Maryfrom>
  5:     <subject>Remindersubject>
  6:     <body>Meet me tomorrow at 12pm.body>
  7: note>

XML files are made of “tags”.  In the example above, the tags are surrounded with .  The text between the opening and closing tags is the data.  As you can see, this XML file represents some data object called a “note”.  Inside the note are 4 data items (to, from, subject, and body).  What makes XML extensible is that there are no pre-defined tags.  You make them up as you need them.  The only thing that’s important is that the program that creates the XML file and the program that reads the XML file both agree on the tags and how to handle them.

Even though there are no predefined tags in XML, there are formatting rules:

  • Any opening tag (like “” in the example above) must have a corresponding closing tag (“” in the example above).
  • Indentation doesn’t matter.
  • line breaks don’t matter (except for the data parts, possibly).

This article is not an XML tutorial, so I’ve not made any attempt to include the full list.  If you would like a complete description to implement XML in your own, custom software, w3 schools is an excellent resource.

Web Service Development

A definition first:  A web service is essentially a collection of subroutines on a web server that can be called remotely, by other machines on the web.  Web Services are sometimes referred to as “XML Web Services” because all communication to and from a web service is by transmitting XML data back and forth.  It’s not just any old XML data.  It has to be formatted via the SOAP specification.  SOAP web services usually provide a WSDL file (pronounced Wizdul) that describes the methods (subroutines) available, their names, the parameters they take, the types of the parameters, the data types they return, and a description of each method.

WSDL makes them easier to consume by 3rd party developers.  With this, they don’t necessarily need printed documentation which means the web service provider doesn’t have to worry (as much) about how to get the documentation to the 3rd party developers to being writing software that makes calls to the web services.

A web service method can do pretty much anything any subroutine can do.  They’re generally used to simplify distributed computing application development.  By putting the web services on a public (or partially public) server, as opposed to distributing DLLs, it gives the web service provider the ability to make internal changes without having to notify all other application owners.  If the changes are only internal, and don’t affect the names of the methods or their parameters or the types of their parameters or return types, then no changes are needed to any of the multitude of remote applications that may be making use of the web services.

Some examples of web services:

Google:  Google hosts a plethora of web services, though none of them are SOAP web services.  Though this does make them accessible to more developers, it also makes them more difficult to code against because a lot of software development products have direct support for SOAP web services, eliminating the need to manually encode and decipher the custom XML that Google uses.

UPS:  UPS provides web services for providing live costs for packaging.  For example, an online merchant, such as www.MichaelsAttic.com can provide their shoppers with instant quotes on shipping expenses by sending the ship from address, the customer’s ship to address, and the sizes and weights of the packages to the UPS web services.  In response, the UPS web services provide the cost of shipping.  The United States Postal Service provides similar web services.

Google Checkout and PayPal:  Both of these services provide online purchase transaction capability via web services.  www.MichaelsAttic.com uses Google Checkout, for example.

There are many many weather related web service providers, stock quote web service providers, foreign currency exchange web services and just about anything you can imagine.

Creating a Web Service:

Pretty much any language can be used to create a web service.  I’m partial to .NET technologies to create web services.  To create a web service is significantly different depending on the language and the technology you choose to create them.  Some development technologies make is ridiculously simple by coding all of the monotonous XML translation for you.  Others have zero support, requiring you to hard code it all yourself.  With .NET technologies, you simply create a “web service” project, which creates a new class for you in code, then you put “[Webmethod]” on the line above each class method you want to expose as a web service method.  It really couldn’t be simpler.

What is “Windows Service Development”?

To answer that, first I have to define what a Windows Service is.  The Windows OS has the ability to run (or “execute”) several diffeMMCrent types of programs.  The types of programs most Windows users are familiar with are the ones stored on disk with the name “.exe” appended to the end of its file name.  Users generally double-click the file with their mouse (or a link to the file or an icon representing it) and the program is then loaded and executed.  These programs generally have a GUI.  Sometimes they have a plain old text (or “console”) interface.  But, they usually have some kind of a user interface.  These programs also require a user to be actively logged onto the machine.  These programs also run with the same security as the logged on user.  Any permissions the user has, so do the programs the user started.

Windows Services are different types of programs.  They’re not Windows Services in Task Managerlaunched (or started) directly by the user.  They generally start when the OS starts and do not require that a user be logged on to run.  As such, since they can run without a user interacting with them, they don’t have a user interface.  They run in the background.

A typical Windows machine has dozens of Windows Services running all the time.  They range from anti-virus programs, to web servers, to database servers.  Even some viruses run as Windows Services.

Development:

Windows Service Development is the act of designing and writing one of these Windows Service programs.  They can be written in pretty much any language that a normal Windows program can be written in.  Most Windows Service applications are written in C or C++.  Though, more and more are written in a language that supports the .NET framework, such as C# or VB.NET.

A Windows Service program can be written to respond to 4 different events:

  1. Start
  2. Stop
  3. Pause
  4. Resume

Start and Stop events are required events.  In other words, you have to write event handlers for those two events.  The pause and resume events are optional.

In the start event handler, you generally spin off a new thread and in that thread create an infinite loop, exiting only when the stop event is triggered.  Inside this loop, you perform your work.

What’s XBox Live?

image

XBox Live is an online service available to original XBox and XBox 360 consoles.  You must have an XBox to connect to this service.  And, your XBox had better not be modified to play pirated games, or your console and your account will be banned for life.

There are two tiers to the online service:  Gold and Silver.  The silver tier is free and allows you to view the free content available, which is usually movie and game trailers, access to the marketplace where you can upgrade your membership, buy Microsoft points (online currency) to buy games, and download and play free demos of imagegames.  The gold membership is a paid membership which is about $50/year.  You automatically get 1 free month with the purchase of your XBox console.  Many games come with a 1 month free code.  With the paid, gold membership, you have access to your Netflix account (if you have one) and can watch live, streaming movies from your Netflix queue, right there on your living room TV (no PC required for viewing).  You also get access to your facebook account, twitter account, and the primary purpose of XBox Live Gold membership:  You can play games with or against online imagegamers, “friend” online gamers, be able to brag about your online achievements, and be placed in global high score lists.  There are more services than this and the list of services keeps growing.  If you’re a software developer, you can even write your own games using XNA technology and publish your games on the XBox Live “Indie Games” section for anyone else to purchase.  You get real money in your account.

Beware of cheap XBox 360 consoles!

image

If you’re in the market for a used XBox 360 console this holiday shopping season, you might want to think twice about snatching up that too good to be true price on one you found online.  Microsoft just banned somewhere between 600,000 to 1,000,000 XBox 360 consoles from the XBox Live network.

Lots of people have been hacking or “modding” or “chipping” their XBox 360 consoles.  This means they’ve replaced some of the chips inside their consoles to prevent their consoles from detecting their pirated game discs so they could easily play the pirated games.  (An unmodified XBox 360 will refuse to play a pirated game disc).  Here’s the kicker:  One of the great features of an XBox 360 is its ability to go online to the XBox Live service and use all of the features like playing against your friends online, chatting, bragging with your game trophies, watch Netflix movies, use facebook and twitter, buy games for download such as community games written with XNA, etc…  Microsoft has just recently started detecting which consoles were modified and which weren’t when these consoles connect to XBox Live.  As soon as the XBox live service detects a modified XBox 360 console, it takes note of its serial # (and presumably the XBox Live account) and bans them from ever connecting to the XBox Live service again.  This ban does NOT get undone if the XBox 360 console is sold to an unsuspecting buyer.

What does this mean for you?

Well, if you’re one of the ones that modified you XBox 360 console, it means you’ve either already been banned or you will be next time you connect.

If you’re just shopping for a good price on a used XBox 360 console, it means there are now thousands of banned XBox 360 consoles for sale on e-bay, Craig’s List, and other online outlets.  I doubt ANY of those seller will tell you their console is banned!  Your best bet is to just not buy ANY used XBox 360 consoles online.  The probability of buying a banned console is extremely high and you’re totally screwed if you buy one.  Microsoft will have absolutely NO pity on you whatsoever and will NOT undo the ban.  Your only option at that point is to try to get your money back from the person you bought it from.  This may mean imagecontacting e-bay for buyer’s protection and of course leaving negative feedback on the seller unless they make good.  If you buy it on Craig’s List, you’re at the mercy of the seller.  Of course, you can always file suit in small claims court.  It’s illegal for them to leave out such pertinent information.  You should read the seller’s fine print too.  They may have hidden it in there.  If so, you have no recourse.

If you buy a used XBox 360 console locally, insist that the seller hook it up to XBox Live in front of you to prove it has not been banned.  If they refuse, you should obviously assume it has been banned.  Do NOT take any excuses as to why they won’t hook it up.  You should tell them that you refuse to buy it until they can prove it’s not been banned.

I’ve sent a message to XBox support to see if there’s a way for you to determine by serial # if an XBox 360 console has been banned.  I’m awaiting a reply.  Check back here frequently for a response.  I got a response from Microsoft.  Short answer:  According to the e-mail response (but their phone support says otherwise… read below this e-mail response), there’s no way to determine if a used console has been banned, short of attempting to connect to XBox Live and see for yourself.  Here’s their response (and they need to teach their techies how to write proper English too, BTW):

We suggest that customer will purchase the new xbox 360 because there is a possibilty that the previous owner has been modified or violated the code of conduct for the console. We dont have any information on how to check if the console that you will be purchasing was banned or not.Only our system  can track down weather it was modified or not/

For US and Canada customers, please contact Xbox Customer Service at 1-800-469-9269 at your earliest convenience, and we’ll be happy to help you. We are open everyday from 6am to 10pm US Pacific Time.

For international customers, please contact Xbox Customer Service in your local region. (To find the correct Customer Service number for your region first use this link http://www.xbox.com/en-US/ChangeLocale.htm to select the appropriate country and then use the contact number found under the support menu). You may also choose to call international assistance (direct dial to the US) by dialing 425-635-7180.

If you need to reply to this e-mail, please reply ‘with history’ (include any previous e-mail) or reference to Service Request Number *———- * so we can expedite our service to you.

Thank you for visiting Xbox.com. If you should have future questions on Xbox products or services, please be sure to revisit our Web site as we continually adding information to enhance our service.

Best Regards,

Kim

Microsoft XBOX Support Services

http://support.microsoft.com/

I just called the number and it’s the customer support #.  They have a recording talking about the ban and direct you here:  http://www.xbox.com/en-US/consoleban

BUT!  I just spoke to an agent and they CAN tell you if a used console is banned, BUT that console has to have already been registered.  Here’s what you do:

  1. Contact the person selling the suspect XBox 360 console.
  2. Get their name, address, phone #, and of course, the XBox’s serial number.
  3. Call 800-469-9269 and go through the menus to get to an agent.
  4. Tell the agent you’re about to buy a used console, but need to check if it’s been banned and that you have all the information they need to check, including the serial #.

At that point, the agent should be able to confirm or deny if it’s been banned.  Again, the console must have already been registered.  If it hasn’t, it could still be banned, but the agents would not know.  So, if it’s not been registered, have the seller register it, then you can call and check.  If the seller refuses, consider it a banned XBox and don’t buy it!

BUYER BEWARE!!!!

Have you been affected by this either as someone who modded their console and gotten banned or who has been the unwitting recipient of a banned console?  Let me know in the comments below.