RESTful-rajapinnan suunnitteluperiaatteita voidaan pitää samankaltaisena olio- perustaisen suunnittelun (engl. OOD, Object Oriented Design) kanssa [Sandoval, 2009]. Olioperustaisessa suunnittelussa pyritään tunnistamaan oliot ja metodit, joita oliolla voi olla. Sandovalin mukaan RESTful-ohjelmointirajapinnan suunnit- telun periaatteet voidaan tiivistää neljään vaiheeseen:
• Vaatimusten määrittely. RESTful-rajapinnan vaatimusten määrittely on sa- mankaltainen prosessi, kuin ohjelmistojen vaatimusmäärittely.
• Resurssien tunnistaminen: Tunnistetaan rajapinnan resurssit samaan ta- paan kuin OOD:ssa oliot.
48
Kuva 5.3 Myyntikanavien toteuttaminen tehdasmetodi-suunnittelumallilla.
• Resurssien kuvauskielen määrittäminen: Tyypillisesti kuvauskielenä käyte- tään XML-formaattia (Extensible Markup Language), mutta myös JSON kasvattaa suosiotaan.
• Osoitteiden (URI) määrittäminen: Kun resurssit on määritelty, määritel- lään API, joka koostuu osoitteista, joiden avulla asiakassovellus ja palvelin- sovellus vaihtavat resurssien kuvauksia.
Edellisessä luvussa kuvattujen verkkokaupan vaatimusten pohjalta voidaan tun- nistaa seuraavat ohjelmointirajapinnan resurssit:
• tuote
• tuotekategoria
• tuotemerkki
• käyttäjä
• ostoskori
• tilaus
• toimitustapa ja
• maksutapa.
Rajapinnassa tulee olla myös metodit tuotteiden saatavuustietojen kysymiseen sekä käyttäjän salasanan vaihtamiseen. Nämä rajapinnan osa-alueet on lisätty osaksi rajapintaa REST-tyyliin. Tunnistettujen resurssien pohjalta voidaan mää- rittää monikanavaisen verkkokauppa-alustan ohjelmointirajapinnan osoitteet. Tau- lukoissa 5.1 ja 5.2 on kuvattu RESTful-rajapinnan kokoelmien ja resurssien osoit- teet sekä niiden kuvaukset. Rajapinnan resurssien osalta on myös kuvattu mil- lä HTTP-metodeilla resursseja on mahdollista kutsua. Kuvattu rajapinta ei ole kokonaisuudessaan RESTful, koska kaikille resursseille ei ole kuvattu resurssin luomista, muokkaamista ja poistamista. Rajapinta voidaan kuitenkin laajentaa kaikkien resurssien osalta RESTful-rajapinnaksi tarpeen mukaan.
50
Tuotteet
URL Metodi Kuvaus Vastauksen runko
/api/products/ GET Tuote-kokoelma. ATOM-syöte
/api/products/product-id GET Tuotteen tietojen lu- keminen.
ATOM-entry /api/products/availability GET Tuotteiden saatavuus-
tiedot.
XML
Tuotemerkit
URL Metodi Kuvaus Vastauksen runko
/api/brands/ GET Tuotemerkki-
kokoelma.
ATOM-syöte /api/brands/brand-id GET Tuotemerkin tiedot. ATOM-entry Tuotekategoriat
URL Metodi Kuvaus Vastauksen runko
/api/categories/ GET Tuotekategoria- kokoelma.
ATOM-syöte /api/categories/category-id GET Tuotekategorian
tiedot.
ATOM-entry
Taulukko 5.1: Rajapinnan osoitteet ja resurssien kuvaukset, sekä niiden kutsumi- seen vaadittava HTTP-metodi ja HTTP-vastauksen rungon esitysmuoto.
Käyttäjät
URL Metodi Kuvaus Vastauksen runko
/api/users/ POST Käyttäjätilin luomi-
nen.
ATOM-entry /api/users/user-id PUT Käyttäjätilin päivittä-
minen.
ATOM-entry /api/users/user-id GET Käyttäjätilin tiedot. ATOM-entry /api/users/user-id DELETE Käyttäjätilin poista-
minen.
-
/api/users/
requestNewPassword/
email-address
POST Uuden salasanan ti- laaminen.
-
Ostoskori
URL Metodi Kuvaus Vastauksen runko
/api/cart/ POST Ostoskorin luominen. ATOM-entry
/api/cart/cart-id PUT Ostoskorin päivittä- minen.
ATOM-entry /api/cart/cart-id GET Ostoskorin tiedot. ATOM-entry /api/cart/cart-id DELETE Ostoskorin poistami-
nen.
-
Tilaus
URL Metodi Kuvaus Vastauksen runko
/api/purchase/ POST Tilauksen luominen. ATOM-entry /api/purchase/purchase-id PUT Tilauksen päivittämi-
nen.
ATOM-entry /api/purchase/purchase-id GET Tilauksen tiedot. ATOM-entry /api/purchase/purchase-id DELETE Tilauksen poistami-
nen.
-
/api/purchase/
deliveryMethods
GET Käytettävissä olevat toimitustavat.
XML
/api/purchase/
paymentMethods
GET Käytettävissä olevat maksutavat.
XML
Taulukko 5.2: Rajapinnan osoitteet ja resurssien kuvaukset, sekä niiden kutsumi- seen vaadittava HTTP-metodi ja HTTP-vastauksen rungon esitysmuoto.
6 Yhteenveto
Verkkokauppiaiden tulee jatkossa panostaa entistä enemmän verkkokaupan oh- jelmointirajapintaan, ja varmistaa, että käytettävä verkkokauppa-alusta tukee myynti- ja markkinakanavien ketterää ja kustannustehokasta käyttöönottoa. Täs- sä tutkielmassa esittelin monikanavaista e-kaupankäyntiä, määritin ulkoiset myyn- tikanavat tarkemmin myynti- ja markkinakanaviin ja kosketuspintoihin, sekä mää- rittelin monikanavaisen verkkokauppa-alustan vaatimuksia. Määriteltyjen vaa- timusten pohjalta esitin korkean tason suunnitelman verkkokaupan RESTful- rajapinnasta, ja sen keskeisistä resursseista. RESTful-rajapinnan avulla verkko- kaupasta on mahdollista kehittää eri kosketuspinnoille suunniteltuja verkkokaup- pasovelluksia, ja tämän lisäksi RESTful-rajapinta mahdollistaa myös kolmannen osapuolen sovelluskehityksen.
Tutkielmassa tehtyjen havaintojen pohjalta verkkokaupan tulee jatkossa kyetä toimimaan myös välimiesohjelmistona tuotteiden ja tilausten välittämiseen verk- kokaupan ja myynti- ja markkinakanavien välillä. Ulkoisten kanavaintegraatioiden haasteena on, ettei tuotteille tai tilauksille ole mitään standardoitua esitystapaa, jota yleisesti noudatettaisiin. Välimiesohjelmiston tulee olla ketterästi laajennet- tavissa tukemaan uusia mahdollisia myyntikanavia, ja niiden rajapintoja. Tähän laajennettavuusongelmaan esitin ratkaisuna tehdasmetodi-suunnittelumallin, ja toteutin välimiesohjelmiston korkean tason arkkitehtuurisuunnitelman tehdasme- todi-sunnittelumalliin perustuen.
Mobiilimaksamisen mahdollisuudet ovat tällä hetkellä vielä rajalliset natiiveissa sovelluksissa, ja tästä syystä ei ole oletettavaa, että ainakaan Suomessa natii- vit päätelaitteille suunnitellut verkkokauppasovellukset yleistyisivät lähiakoina.
Sen sijaan verkon kautta tapahtuva mobiili- ja tablet-verkkokaupankäynti tulee kasvattamaan suosiotaan. Verkkokauppiaiden tulee ottaa huomioon kuluttajien muuttuneet tavat etsiä, vertailla ja ostaa tuotteita verkosta ajasta ja paikasta riippumatta käyttäen erilaisia päätelaitteita. Tästä syystä mobiilioptimoidut ja päätelaitteelle suunnitellut verkkokaupat ovat tulevaisuudessa avainasemassa.
Uskon vahvasti myös e-markkinapaikkojen sekä tuote- ja hintavertailupalvelui- den tulevaisuuteen, ja näiden palveluiden yleistymiseen. On epätodennäköistä, että sosiaalinen media tulisi toimimaan lähitulevaisuudessa merkittävänä myyn- tikanavana, jos verkkokaupankäyntiä ei oteta tiiviimmin osaksi sosiaalisen median palveluita. Sosiaalisen median palveluilla on kuitenkin jatkossakin merkittävä roo- li verkkokaupankäynnissä markkina- ja palautekanavina.
[Anderson et al., 2011] Matt Anderson, Joe Sims, Jerell Price, & Jennifer Brusa.
Turning Like to Buy. Social Media Emerges as a Commerce Channel. 2011.
[Berjon et al., 2012] Robin Berjon, Travis Leithead, Erika Doyle Navara, Edward O’Connor, & Silvia Pfeiffer. HTML5. Technical report, W3C, http://dev.
w3.org/html5/spec/single-page.html, 2012.
[Box et al., 2000] Don Box, David Ehnebuske, Gopal Kakivaya, Andrew Lay- man, Noah Mendelsohn, Henrik Frystyk Nielsen, Satish Thatte, & Dave Wi- ner. Simple Object Access Protocol (SOAP) 1.1. Technical report, W3C, http://dev.w3.org/html5/spec/single-page.html, 2000.
[Channabasavaiah & Holley, 2004] Kishore Channabasavaiah & Kerrie Hol- ley. Migrating to a service-oriented architecture. Technical report, IBM, ftp://service.boulder.ibm.com/s390/audio/pdfs/G224-7298-00_
FinalMigratetoSOA.pdf, 2004.
[Chiu, 2011] David Chiu. Are you ready for the new mobi- le commerce? http://www.elasticpath.com/pdf/whitepapers/
elastic-path-mobile-commerce.pdf, 2011. Elastic Path, Digital Commerce everywhere.
[CityDeal, 2012] CityDeal. Groupon citydeal. www.groupon.fi, 2012. Päivän tarjous -palvelu.
[Davis, 2012] Cornelia Davis. What if the Web Were not RESTful? InWS-REST
’12: Proceedings of the Third International Workshop on RESTful Design, pa- ges 3–10, 2012.
[eBay, 2012] eBay. ebay. http://www.ebay.com, 2012. Kansainvälinen kauppa- paikka ja internet-huutokauppa.
[Erl, 2005] Thomas Erl. Service-oriented architecture : concepts, technology, and design. Prentice Hall, 2005.
54
[Fielding et al., 1999] Roy Thomas Fielding, James Gettys, Jeffrey C. Mogul, Henrik Frystyk Nielsen, Larry Masinter, Paul J. Leach, & Tim Berners-Lee.
Hypertext Transfer Protocol – HTTP/1.1, Status Code Definitions. Technical report, Network Working Group, http://www.w3.org/Protocols/rfc2616/
rfc2616-sec10.html, 1999.
[Fielding, 2000] Roy Thomas Fielding. Architectural Styles and the Design of Network-based Software Architectures. PhD thesis, University of California, Irvine, 2000.
[Fruugo, 2012] Fruugo. Fruugo. http://www.fruugo.fi, 2012. Euroopan laa- juinen kauppapaikka.
[Gamma et al., 1994] Erich Gamma, Richard Helm, Ralph Johnson, & John Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software.
Addison-Wesley Professional, 1994.
[Ganesh et al., 2004] Jai Ganesh, Srinivas Padmabhuni, & Deependra Moitra.
Web Services and Multi-Channel integration: A Proposed Framework. 2004.
[Google, 2012a] Google. Google Analytics. http://www.google.com/intl/fi_
ALL/analytics/index.html, 2012. Yritystason verkkoanalysointityökalu.
[Google, 2012b] Google. Google Checkout. https://checkout.google.com, 2012. Googlen oma maksujärjestelmä.
[Google, 2012c] Google. Google Product Search. http://www.google.com/
shopping, 2012. Googlen hintavertailupalvelu.
[Haynie et al., 2011] Jeff Haynie, Matt Edelman, & Matt Giger. Mobile face-off:
HTML5 vs. native apps vs. mobile platforms. 2011. x.commerce, Innovate developer conference.
[Huaxin & Shuai, 2011] Mu Huaxin & Jiang Shuai. Design Patterns in Software Development. 2011.
[Juric et al., 2007] Matjaz B. Juric, Ramesh Loganathan, Poornachandra Sarang,
& Frank Jennings. SOA Approach to Integration. Packt Publishing Ltd., 2007.
[Järvinen, 2002] Jani Järvinen. Hajautetut verkkopalvelut. Docendo, 2002.
[Kiosked, 2012] Kiosked. Kiosked. http://www.kiosked.com/, 2012. Verkko- kauppayritys.
[Kulkarni et al., 2005] Naveen Kulkarni, Senthil Kumar, Kumarasamy Mani, &
Srinivas Padmanabhuni. Web Services: E-Commerce Partner Integration. 2005.
[Michlmayr et al., 2007] Anton Michlmayr, Florian Rosenberg, Christian Platzer, Martin Treiber, & Schahram Dustdar. Towards recovering the broken SOA triangle: a software engineering perspective. 2007.
[Moilanen, 2004] Joni Moilanen. Palveluorientoitunutta ohjelmointia. Assemblix- uutiskirje, page 18, 2004.
[Network Working Group, 2005] Network Working Group. The Atom Syndica- tion Format. http://tools.ietf.org/html/rfc4287, 2005.
[Network Working Group, 2007] Network Working Group. The Atom Publishing Protocol. http://tools.ietf.org/html/rfc5023, 2007.
[Nykonenko, 2012] A. A. Nykonenko. Creational design patterns in computatio- nal linguistics: Factory Method, Prototype, Singleton.Cybernetics and Systems Analysis, 48(1), 2012.
[Ramji, 2010] Sam Ramji. Darwin’s Finches, 20th Century Business, and APIs:
Evolve Your Business Model. 2010.
[Remes, 2012] Matti Remes. Tervetuloa basaariin! MikroBitti, 2012(10):26–30, 2012.
[Sandoval, 2009] Jose Sandoval. RESTful Java Web Services. Packt Publishing Ltd., 2009.
[Sanoma News, 2012a] Sanoma News. Hintaseuranta. http://www.
hintaseuranta.fi, 2012. Suomen suurin hintavertailupalvelu.
[Sanoma News, 2012b] Sanoma News. Huuto Outlet. http://www.outlet.fi, 2012. Suomen suurin outlet-verkkokauppa.
56
[Sanoma News, 2012c] Sanoma News. Huuto.net. http://www.huuto.net, 2012.
Suomen suurin verkkohuutokauppa.
[Savo, 2010] Yle Savo. Yhä useampi matka varataan netistä. http://yle.fi/
uutiset/yha_useampi_matka_varataan_netista/5481604, 2010.
[Selonen, 2010] Petri Selonen. Engineering RESTful web services: beyond missing theory and half-baked practice. 2010. Guest Lecture for Graduate School on Software Systems and Engineering.
[Sheikh et al., 2011] Maher A. Al Sheikh, Hatim A. Aboalsamh, & Ahmed Al- barrak. Migration of Legacy Applications and Services to Service-Oriented Architecture (SOA). In Current Trends in Information Technology (CTIT), pages 137–142, 2011.
[Snell, 2006] James Snell. Getting to know the Atom Publishing Protocol, Part 1:
Create and edit Web resources with the Atom Publishing Protocol. Technical report, IBM, http://www.ibm.com/developerworks/library/x-atompp1/, 2006.
[Sutinen, 2011] Reeta Sutinen. Verkon rooli matkailupalveluiden ostokanavana on vahva. http://www.tns-gallup.fi/uutiset.php?aid=14767&k=14320, 2011. TNS Gallup.
[Tian & Stewart, 2006] Yan Tian & Concetta Stewart. Encyclopedia of e- Commerce, e-Government and Mobile Commerce, chapter History of E- Commerce, pages 559–564. Idea Group Publishing, 2006.
[Tilastokeskus, 2011] Tilastokeskus. Suomen virallinen tilasto (SVT): Tieto- ja viestintätekniikan käyttö [verkkojulkaisu].http://www.stat.fi/til/sutivi/
2011/sutivi_2011_2011-11-02_kat_005_fi.html, 2011.
[Turban et al., 2010] Efraim Turban, David King, Jae Lee, Ting-Peng Liang, &
Deborrah Turban.Electronic commerce 2010 : A Managerial Perspective. Pren- tice Hall, 2010.
[Walker, 2011a] Brian K. Walker. Shopping APIs and How They Future- proof Your Business. http://www.elasticpath.com/revised-webinars/
shopping-api, 2011.