อะแพชี แอกซิส คือ โครงร่างซอฟต์แวร์ประเภทโอเพ่นซอร์ส ใช้สำหรับสร้างเว็บเซอร์วิซ โดยด้วย แอกซิส เองรองรับการพัฒนาอยู่ 2 ภาษาคือ ภาษาจาวา และ ภาษาซีพลัสพลัส ซึ่งนำไปใช้กับ SOAP Server นอกจากนี้ยังมีเครื่องมือ และ APIs ช่วยอำนวยความสะดวกให้กับนักพัฒนา สำหรับสร้าง เว็บเซอร์วิซ และโปรแกรมประยุกต์ที่ทำงานร่วมกับเว็บเซอร์วิซ โดยที่ แอกซิส นี้อยู่ภายใต้มูลนิธีซอฟต์แวร์อะแพชี อะแพชี แอกซิส สำหรับภาษาจาวา สำหรับภาษาจาวานั้นมีทางเลือกอยู่ 2 วิธี สำหรับการสร้างเว็บเซอร์วิซ หลังจากพัฒนาโค้ดภาษาจาวาแล้ว คือ เปลี่ยนนามสกุลของไฟล์นั้นจากเดิมที่เป็น .java ให้เป็น .jws (Java Web Service) ซึ่งเป็นวิธีที่ง่ายที่สุด แต่เมธอดที่อยู่ในไฟล์นั้น จะได้รับการประกาศออกไปว่าให้บริการเว็บเซอร์วิซทั้งหมด ส่วนอีกวิธีการหนึ่งคือ ใช้คุณสมบัติ และเครื่องมือของ แอกซิส ในการเลือกว่าต้องการประกาศ หรือไม่ประกาศเมธอดใดในไฟล์นั้นๆ ให้เพื่อให้บริการเว็บเซอร์วิซ
ซอฟต์แวร์ ( software) หรือ ส่วนชุดคำสั่ง คือ ส่วนหนึ่งของระบบคอมพิวเตอร์ที่ใช้ในการจัดเก็บและประมวลผมข้อมูล เป็นชุดคำสั่งที่บอกวิธีการทำงานของคอมพิวเตอร์ ซึ่งตรงกันข้ามกับฮาร์ดแวร์ที่เป็นระบบคอมพิวเตอร์ที่สามารถจับต้องได้ ในสาขาวิชาวิทยาการคอมพิวเตอร์และวิศวกรรมซอฟต์แวร์นั้น ซอฟต์แวร์คอมพิวเตอร์ คือ ข้อมูลทั้งหมดที่ได้รับการประมวลผลโดยระบบคอมพิวเตอร์ และ โปรแกรมคอมพิวเตอร์ ซอฟต์แวร์คอมพิวเตอร์นั้นประกอบด้วย โปรแกรมคอมพิวเตอร์, ไลบรารี และ ข้อมูลที่ไม่สามารถเรียกใช้งานได้ด้วยโปรแกรมคอมพิวเตอร์ อาทิ เอกสารออนไลน์หรือสื่อดิจิทัล คอมพิวเตอร์เครื่องหนึ่งจำเป็นต้องมีทั้งฮาร์ดแวร์และซอฟต์แวร์ และหากขาดอย่างใดอย่างหนึ่งไป จะไม่สามารถใช้งานระบบคอมพิวเตอร์ได้
ในระดับโปรแกรมคอมพิวเตอร์ที่ต่ำที่สุด โค้ดปฏิบัติการนั้น ประกอบด้วย คำสั่งภาษาเครื่อง (machine language) ที่โปรเซสเซอร์ (processor) แต่ละตัวรองรับ โดยทั่วไปคือหน่วยประมวลผลกลาง (CPU) หรือ หน่วยประมวลผลกราฟิก (GPU) ภาษาเครื่อง ประกอบด้วย กลุ่มค่าไบนารี (เลขฐานสอง) ที่แสดงถึงคำสั่งของตัวประมวลผลที่ได้เปลี่ยนสถานะของคอมพิวเตอร์จากสถานะก่อนหน้า เช่น คำสั่งภาษาเครื่องอาจเปลี่ยนค่าที่จัดเก็บไว้ในตำแหน่งจัดเก็บเฉพาะในคอมพิวเตอร์ ซึ่งผู้ใช้ไม่สามารถสังเกตเห็นได้โดยตรง หรือ คำสั่งนั้นอาจเป็นการเรียกอินพุตหรือเอาต์พุตอย่างใดอย่างหนึ่งซึ่งผู้ใช้คอมพิวเตอร์สามารถมองเห็นได้ เช่น การแสดงข้อความบนหน้าจอคอมพิวเตอร์ โปรเซสเซอร์จะดำเนินการตามคำสั่ง ตามลำดับที่ระบุไว้ เว้นแต่จะได้รับคำสั่งให้ “ข้าม” ไปยังคำสั่งอื่น หรือ ระบบปฏิบัติการถูกขัดจังหวะ ในปี ค.ศ.2015 คอมพิวเตอร์ส่วนบุคคล อุปกรณ์สมาร์ทโฟน และ เซิร์ฟเวอร์ส่วนใหญ่ มีหน่วยประมวลผลที่มีหน่วยประมวลผลหลายหน่วย (่multiple execution unit) หรือโปรเซสเซอร์หลายตัว ทำการคำนวณร่วมกันและการประมวลผล ทำให้ส่วนโปรเซสเซอร์สามารถทำงานร่วมกันในเวลาพร้อม ๆ กัน (concurrent activity) มากกว่าระบบโปรเซสเซอร์ในอดีต
ซอฟต์แวร์นั้นนอกจากจะสามารถใช้งานบนคอมพิวเตอร์ได้แล้ว ยังสามารถใช้งานบนเครื่องใช้ หรืออุปกรณ์อื่น เช่น โทรศัพท์มือถือ หรือหุ่นยนต์ในโรงงาน หรือเครื่องใช้ไฟฟ้าต่าง ๆ ซอฟต์แวร์ส่วนใหญ่เขียนด้วยภาษาโปรแกรมระดับสูง (high-level programming language) ซึ่งง่ายกว่าและมีประสิทธิภาพมากกว่าสำหรับโปรแกรมเมอร์ เพราะใกล้เคียงกับภาษาธรรมชาติที่มนุษย์ใช้มากกว่าภาษาเครื่อง ภาษาระดับสูงจะถูกแปลเป็นภาษาเครื่องโดยใช้คอมไพเลอร์ (compiler) หรืออินเตอร์พรีตเตอร์ (interpreter) หรือทั้งสองอย่างรวมกัน ซอฟต์แวร์อาจเขียนด้วยภาษาแอสเซมบลีระดับต่ำ (assembly language) ซึ่งมีความสอดคล้องกับคำสั่งภาษาเครื่องของคอมพิวเตอร์อย่างมาก และ ภาษาแอสเซมบลีจะถูกแปลเป็นภาษาเครื่องโดยใช้แอสเซมเบลอร์ (assembler) การแบ่งเชิงเทคนิค อาจแบ่งซอฟต์แวร์เป็น 3 ประเภทหลักคือ ซอฟต์แวร์ระบบ (System/Infrastructure software) ใช้ในการทำให้คอมพิวเตอร์ฮาร์ดแวร์ทำงานกับระบบคอมพิวเตอร์ได้ โดยรวมถึงระบบปฏิบัติการ ไดรเวอร์ และระบบหลักของคอมพิวเตอร์ต่าง ๆ โปรแกรมประยุกต์ หรือซอฟต์แวร์ประยุกต์ (Application software) ช่วยให้ผู้ใช้งานสามารถดำเนินงานต่าง ๆ โดยทั่วไปเช่น โปรแกรมสำนักงาน ฐานข้อมูล คอมพิวเตอร์เกม เว็บเบราว์เซอร์ โดยโปรแกรมประยุกต์จะมีจียูไอ โปรแกรมคอมพิวเตอร์ (Tools/Utilities) ประกอบไปด้วยเครื่องมือช่วยให้โปรแกรมเมอร์เขียนโปรแกรมอื่น ๆ หรือโปรแกรมประยุกต์ได้ เครื่องมือต่าง ๆ ประกอบไปด้วย คอมไพเลอร์ อินเตอร์พรีเตอร์ ดีบักเกอร์
เฟรมเวิร์ก (framework) หรือ โครงร่างซอฟต์แวร์ เป็นรูปแบบที่นำกลับมาใช้ใหม่ได้สำหรับระบบซอฟต์แวร์ (หรือระบบย่อย) ซึ่งสามารถอยู่ในรูปของคลาสนามธรรม (Abstract class) และกับวิธีในการใช้ตัวตน (instance) ของคลาสร่วมกันจำเพาะสำหรับซอฟต์แวร์ชนิดใดชนิดหนึ่ง โครงร่างซอฟต์แวร์ทุกโครงร่างใช้การออกแบบเชิงวัตถุ โปรแกรมของโครงร่างซอฟต์แวร์มักจะเป็นโปรแกรมเชิงวัตถุ อย่างไรก็ตามโปรแกรมที่เขียนขึ้นตามการออกแบบไม่จำเป็นต้องเป็นโปรแกรมเชิงวัตถุ ยกตัวอย่างเช่น โครงร่างซอฟต์แวร์สามารถช่วยให้สร้างโปรแกรมบรรณาธิกรณ์กราฟิก ที่แตกต่างกันได้หลายประเภท เช่น การวาดภาพศิลป์ การประพันธ์ดนตรี และการออกแบบเครื่องกลโดยใช้คอมพิวเตอร์ช่วย (แคด)